CREATE DATABASE  IF NOT EXISTS `arcfrtsvc` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `arcfrtsvc`;
--
-- Host: localhost    Database: arcfrtsvc
-- ------------------------------------------------------


--
-- Dumping events for database 'arcfrtsvc'
--

--
-- Dumping routines for database 'arcfrtsvc'
--
/*!50003 DROP PROCEDURE IF EXISTS `simpleproc` */;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `simpleproc`(OUT `param1` INT)
BEGIN
SELECT COUNT(*) INTO param1 FROM t;
END ;;
DELIMITER ;
/*!50003 DROP PROCEDURE IF EXISTS `simple_loop` */;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `simple_loop`()
BEGIN
  DECLARE counter BIGINT DEFAULT 0;
  
  my_loop: LOOP
    SET counter=counter+1;

    IF counter=10 THEN
      LEAVE my_loop;
    END IF;

    SELECT counter;

  END LOOP my_loop;
END ;;
DELIMITER ;
/*!50003 DROP PROCEDURE IF EXISTS `simple_loop2` */;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `simple_loop2`()
BEGIN
  DECLARE counter BIGINT DEFAULT 0;
  
  my_loop: LOOP
    SET counter=counter+1;

    IF counter=8 THEN
      LEAVE my_loop;
    END IF;

    select fechatentativa from sgac_ventasDiasTentativos where idusuario=1 and idcliente=277;

  END LOOP my_loop;
END ;;
DELIMITER ;
/*!50003 DROP PROCEDURE IF EXISTS `spConsultarTotalesByidCuenta` */;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `spConsultarTotalesByidCuenta`(IN `idcliente` INT, `fecha` DATETIME)
BEGIN
	select idcuenta as idcliente,billto as cliente,yearprefactura,mesprefactura as mes,LEFT(mesprefactura,3) as mescorto,nummesprefactura as nummes,
    coalesce((select sum(gastototal) from sgao_cierremesdetalle  where yearprefactura=DATE_FORMAT(fecha, '%Y') and nummesprefactura=DATE_FORMAT(fecha, '%m') and idcuenta=idcliente and MonedaFactura='Dolares'),0) as gastousd,
	coalesce((select sum(importetotal) from sgao_cierremesdetalle where yearprefactura=DATE_FORMAT(fecha, '%Y') and nummesprefactura=DATE_FORMAT(fecha, '%m') and idcuenta=idcliente and MonedaFactura='Dolares'),0) as importeusd,
	coalesce((select sum(utilidadTotal) from sgao_cierremesdetalle where yearprefactura=DATE_FORMAT(fecha, '%Y') and nummesprefactura=DATE_FORMAT(fecha, '%m') and idcuenta=idcliente and MonedaFactura='Dolares'),0) as utilidadusd,
	coalesce((select sum(gastototal) from sgao_cierremesdetalle  where yearprefactura=DATE_FORMAT(fecha, '%Y') and nummesprefactura=DATE_FORMAT(fecha, '%m') and idcuenta=idcliente and MonedaFactura='Pesos') ,0)as gastomxn,
	coalesce((select sum(importetotal) from sgao_cierremesdetalle where yearprefactura=DATE_FORMAT(fecha, '%Y') and nummesprefactura=DATE_FORMAT(fecha, '%m') and idcuenta=idcliente and MonedaFactura='Pesos') ,0)as importemxn,
	coalesce((select sum(utilidadTotal) from sgao_cierremesdetalle where yearprefactura=DATE_FORMAT(fecha, '%Y') and nummesprefactura=DATE_FORMAT(fecha, '%m') and idcuenta=idcliente and MonedaFactura='Pesos'),0) as utilidadmxn,
	coalesce((select count(idcierredetalle) from sgao_cierremesdetalle where yearprefactura=DATE_FORMAT(fecha, '%Y') and nummesprefactura=DATE_FORMAT(fecha, '%m') and idcuenta=idcliente and MonedaFactura='Dolares'),0) as totalembarquesusd,
	coalesce((select sum(peso) from sgao_cierremesdetalle where yearprefactura=DATE_FORMAT(fecha, '%Y') and nummesprefactura=DATE_FORMAT(fecha, '%m') and idcuenta=idcliente and MonedaFactura='Dolares'),0) as totalpesousd,
	coalesce((select count(idcierredetalle) from sgao_cierremesdetalle where yearprefactura=DATE_FORMAT(fecha, '%Y') and nummesprefactura=DATE_FORMAT(fecha, '%m') and idcuenta=idcliente and MonedaFactura='Pesos'),0) as totalembarquesmxn,
	coalesce((select sum(peso) from sgao_cierremesdetalle where yearprefactura=DATE_FORMAT(fecha, '%Y') and nummesprefactura=DATE_FORMAT(fecha, '%m') and idcuenta=idcliente and MonedaFactura='Pesos'),0) as totalpesomxn
	from sgao_cierremesdetalle 
	where yearprefactura=DATE_FORMAT(fecha, '%Y') and nummesprefactura=DATE_FORMAT(fecha, '%m') and idcuenta=idcliente
	group by idcuenta,billto,yearprefactura,mesprefactura,nummesprefactura;
END ;;
DELIMITER ;
/*!50003 DROP PROCEDURE IF EXISTS `spdelcorteDetalle` */;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `spdelcorteDetalle`(IN `fecha` DATE)
BEGIN
	delete from sgao_cierremesdetalle where yearprefactura=DATE_FORMAT(fecha, '%Y') and nummesprefactura=DATE_FORMAT(fecha, '%m');
END ;;
DELIMITER ;
/*!50003 DROP PROCEDURE IF EXISTS `spEditarBroker` */;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `spEditarBroker`(IN `idBroker` INT, `TipoBroker` INT, `Idcliente` INT, `Nombre` VARCHAR(128), `Dirreccion` VARCHAR(80), `Numero` VARCHAR(10), `Colonia` VARCHAR(49), `ddlpaisId` INT, `ddlEstadosId` INT, `Ciudad` VARCHAR(50), `CP` VARCHAR(15), `Contacto` VARCHAR(120), `Correo` VARCHAR(120), `Tel` VARCHAR(20), `cel` VARCHAR(20), `idUsuario` INT)
BEGIN
	 update sgad_clientesbroker set tipobroker=TipoBroker,bronombre=Nombre,brocalle=Dirreccion,bronumero=Numero,brocolonia=Colonia,brociudad=Ciudad,broPais=ddlpaisId,broestado=ddlEstadosId,broCP=CP,brocontacto=Contacto,brocorreo=Correo,brotel=Tel,brocel=cel where cbrokerid=idBroker;
END ;;
DELIMITER ;
/*!50003 DROP PROCEDURE IF EXISTS `spEditarCliente` */;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `spEditarCliente`(IN `idcliente` INT, `nombre` VARCHAR(128), `Dirreccion` VARCHAR(80), `Colonia` VARCHAR(50), `CP` VARCHAR(15), `RFC` VARCHAR(15), `ddlpaisId` INT, `ddlEstadosId` INT, `Ciudad` VARCHAR(50), `Correo` VARCHAR(120), `Tel` VARCHAR(20), `contactoPrincipal` VARCHAR(50), `VendedorId` INT, `ddlTipoCuentaId` INT, `ddlTipoClienteId` INT, `ddlAquienSeleFacturaraId` INT, `Remitente` TINYINT, `Destinatario` TINYINT, `CuentaNacional` TINYINT, `UsuarioID` INT, `Cta1` VARCHAR(20), `Cta2` VARCHAR(20), `Cta3` VARCHAR(20), `Cta4` VARCHAR(20), `FacturaPontencial` VARCHAR(20), `FacturaraDolares` VARCHAR(20), `AA` TINYINT(1), `Logistica` TINYINT(1), `CanDomestic` TINYINT(1), `USDomestic` TINYINT(1), `MXDomestic` TINYINT(1), `Importacion` TINYINT(1), `Exportacion` TINYINT(1), `PaginaInternet` VARCHAR(128), `NumeroExterior` VARCHAR(20), `NumeroInterior` VARCHAR(20), `numextension` VARCHAR(10), `idmetodopago` VARCHAR(10), `cuatrodigitos` VARCHAR(4), `idcuadranteup` INT, `idrequieredocsfacturacion` TINYINT(1), `trdpartybill` TINYINT(1), `InstruccionesEsp` VARCHAR(256),pcliUsuario VARCHAR(30),pcliPass VARCHAR(50),pcliPartner VARCHAR(1),pcliAccountNumPartnerPriority VARCHAR(30),pcliUserSaas VARCHAR(30),pcliPassSaas VARCHAR(30),pcliClientCodeSaas VARCHAR(30),pcliProfileCodeSaas VARCHAR(30))
BEGIN
    update sgac_clientes set  cliNombre=nombre,cliDireccion=Dirreccion,cliColonia=Colonia,cliCodigoPostal=CP,cliRFC=RFC,paiId=ddlpaisId,estId=ddlEstadosId,cliCiudad=Ciudad,cliCorreo=Correo,cliTel=Tel,cliContactoPrincipal=contactoPrincipal,venId=VendedorId,ctcId=ddlTipoCuentaId,ctdcId=ddlTipoClienteId,cliNombreClienteAFacturar=ddlAquienSeleFacturaraId,cliremitente=Remitente,cliDestinatario=Destinatario,cliCuentaNacional=CuentaNacional,clictaame1=Cta1,clictaame2=Cta2,clictaame3=Cta3,clictaame4=Cta4,cliFactPontPesos=FacturaPontencial,cliFactPontDlls=FacturaraDolares,cliAA=AA,cliLogistica=Logistica,cliCANDomestic=CanDomestic,cliUSDomestic=USDomestic,cliMXDomestic=MXDomestic,cliGiroImportacion=Importacion,cliGiroExportacion=Exportacion,clipaginainternet=PaginaInternet,cliNumeroExt=NumeroExterior,cliNumeroInt=NumeroInterior,numext=numextension,clavemetodopago=idmetodopago,clinumtransferencia=cuatrodigitos,idcuadrante=idcuadranteup,requieredocsfacturacion=idrequieredocsfacturacion,3rdpartybill=trdpartybill,InstruccionesEspeciales=InstruccionesEsp,cliUsuario=pcliUsuario,cliPass=pcliPass,cliPartner=pcliPartner,cliAccountNumPartnerPriority=pcliAccountNumPartnerPriority,cliUserSaas=pcliUserSaas,cliPassSaas=pcliPassSaas,cliClientCodeSaas=pcliClientCodeSaas,cliProfileCodeSaas=pcliProfileCodeSaas where cliid=idcliente;
END ;;
DELIMITER ;
/*!50003 DROP PROCEDURE IF EXISTS `spEditarCompetidor` */;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `spEditarCompetidor`(IN `idTipocompetidor` INT, `Nombre` VARCHAR(120), `Descuento` VARCHAR(120), `Precio` VARCHAR(120), `Observaciones` VARCHAR(500), `idCompetidor` INT)
BEGIN
	 update sgad_clientesprecioycompetencia set idtipocompetidor=idTipocompetidor,Nombre=Nombre,descuento=Descuento,precio=Precio,observaciones=Observaciones where cprecid=idCompetidor;
END ;;
DELIMITER ;
/*!50003 DROP PROCEDURE IF EXISTS `spEditarExpo` */;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `spEditarExpo`(IN `ComoEselFleteABorder` VARCHAR(120), `TipoEmbarque` VARCHAR(120), `EmbBorderxMes` VARCHAR(10), `PesoPromedioEmb` VARCHAR(120), `QuienSeleccionaElCarrierMex` VARCHAR(120), `QuienPagaPorelFlete` VARCHAR(120), `TiempoPromedioTransito` VARCHAR(120), `QuienSeleccionaCarrierBorder` VARCHAR(120), `LTLEmbtoBorderMensual` VARCHAR(120), `PesoPromedioEmbBorder` VARCHAR(120), `QuienPagaPorUsFlete` VARCHAR(120), `CSI` VARCHAR(120), `idexpo` INT)
BEGIN
			update sgad_clientesexpomexico set ComoEselFleteABorder=ComoEselFleteABorder,TipoEmbarque=TipoEmbarque,EmbBorderxMes=EmbBorderxMes,PesoPromedioEmb=PesoPromedioEmb,QuienSeleccionaElCarrierMex=QuienSeleccionaElCarrierMex,QuienPagaPorelFlete=QuienPagaPorelFlete,TiempoPromedioTransito=TiempoPromedioTransito,QuienSeleccionaCarrierBorder=QuienSeleccionaCarrierBorder,LTLEmbtoBorderMensualctd=LTLEmbtoBorderMensual,PesoPromedioEmbBorder=PesoPromedioEmbBorder,QuienPagaPorUsFlete=QuienPagaPorUsFlete,CSI=CSI where cexpomid=idexpo;
END ;;
DELIMITER ;
/*!50003 DROP PROCEDURE IF EXISTS `spEditarImpo` */;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `spEditarImpo`(IN `LTLshpToBorderMens` VARCHAR(128), `PesoPromedioEmb` INT, `RawMaterial` VARCHAR(128), `ComoSeEnvia` VARCHAR(128), `SeconsolidaBorderyFordwarder` VARCHAR(128), `QuienSeleccionaElCarrierMex` VARCHAR(128), `QuienPagaPorelFlete` VARCHAR(128), `TiempoPromedioTransito` VARCHAR(128), `ComoRastreaLaCargaEnMexico` VARCHAR(128), `CSI` VARCHAR(128), `idimpo` INT)
BEGIN
			update  sgad_clientesimpomexico set  LTLshpToBorderMens=LTLshpToBorderMens,PesoPromedioEmb=PesoPromedioEmb,RawMaterial=RawMaterial,ComoSeEnvia=ComoSeEnvia,SeconsolidaBorderyFordwarder=SeconsolidaBorderyFordwarder,QuienSeleccionaElCarrierMex=QuienSeleccionaElCarrierMex,QuienPagaPorelFlete=QuienPagaPorelFlete,TiempoPromedioTransito=TiempoPromedioTransito,ComoRastreaLaCargaEnMexico=ComoRastreaLaCargaEnMexico,CSI=CSI where cimpomid=idimpo;
END ;;
DELIMITER ;
/*!50003 DROP PROCEDURE IF EXISTS `spEditarMercanciaCliente` */;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `spEditarMercanciaCliente`(IN `Nmfc` VARCHAR(128), `Tipomercancia` VARCHAR(128), `Valorestimado` VARCHAR(128), `HazmatUPN` VARCHAR(128), `Mercancia` VARCHAR(256), `Densidad` VARCHAR(20), `Clase` VARCHAR(20), `PromedioPaletaLargo` VARCHAR(20), `PromedioPaletaAncho` VARCHAR(20), `PromedioPaletaAlto` VARCHAR(20), `PromedioPesoPaleta` VARCHAR(20), `PorcentajeTotalMix` VARCHAR(20), `Orden` INT, `IdMercanciaCliente` INT)
BEGIN
	 update sgad_clientestiposmercancias set NMFC=Nmfc,tipomercancia=Tipomercancia,valorestimado=Valorestimado,hazmatUPN=HazmatUPN,mercancia=Mercancia,Densidad=Densidad,Clase=Clase,PromedioPaletaLargo=PromedioPaletaLargo,PromedioPaletaAncho=PromedioPaletaAncho,PromedioPaletaAlto=PromedioPaletaAlto,PromedioPesoPaleta=PromedioPesoPaleta,PorcentajeTotalMix=PorcentajeTotalMix,orden=Orden where tipmerid=IdMercanciaCliente;
END ;;
DELIMITER ;
/*!50003 DROP PROCEDURE IF EXISTS `spfechastentativasventas` */;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `spfechastentativasventas`(IN `idCliente` INT, `idUsuario` INT)
BEGIN
SELECT fechatentativa
FROM sgac_ventasDiasTentativos   
where idcliente=idCliente and idusuario=idUsuario order by  fechatentativa asc;
END ;;
DELIMITER ;
/*!50003 DROP PROCEDURE IF EXISTS `spInsertBroker` */;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `spInsertBroker`(IN `TipoBroker` INT, `Idcliente` INT, `Nombre` VARCHAR(128), `Dirreccion` VARCHAR(80), `Numero` VARCHAR(10), `Colonia` VARCHAR(49), `ddlpaisId` INT, `ddlEstadosId` INT, `Ciudad` VARCHAR(50), `CP` VARCHAR(15), `Contacto` VARCHAR(120), `Correo` VARCHAR(120), `Tel` VARCHAR(20), `cel` VARCHAR(20), `idUsuario` INT)
BEGIN
    insert into sgad_clientesbroker(tipobroker,cliid,bronombre,brocalle,bronumero,brocolonia,brociudad,broPais,broestado,broCP,brocontacto,brocorreo,brotel,brocel,idusuario,fecharegistro)
							 values(TipoBroker,Idcliente,Nombre,Dirreccion,Numero,Colonia,Ciudad,ddlpaisId,ddlEstadosId,CP,Contacto,Correo,Tel,cel,idUsuario,NOW());
END ;;
DELIMITER ;
/*!50003 DROP PROCEDURE IF EXISTS `spInsertCliente` */;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `spInsertCliente`(IN `nombre` VARCHAR(128), `Dirreccion` VARCHAR(80), `Colonia` VARCHAR(50), `CP` VARCHAR(15), `RFC` VARCHAR(15), `ddlpaisId` INT, `ddlEstadosId` INT, `Ciudad` VARCHAR(50), `Correo` VARCHAR(120), `Tel` VARCHAR(20), `contactoPrincipal` VARCHAR(50), `VendedorId` INT, `ddlTipoCuentaId` INT, `ddlTipoClienteId` INT, `ddlAquienSeleFacturaraId` INT, `Remitente` TINYINT, `Destinatario` TINYINT, `CuentaNacional` TINYINT, `UsuarioID` INT, `Cta1` VARCHAR(20), `Cta2` VARCHAR(20), `Cta3` VARCHAR(20), `Cta4` VARCHAR(20), `FacturaPontencial` VARCHAR(20), `FacturaraDolares` VARCHAR(20), `AA` TINYINT(1), `Logistica` TINYINT(1), `CanDomestic` TINYINT(1), `USDomestic` TINYINT(1), `MXDomestic` TINYINT(1), `Importacion` TINYINT(1), `Exportacion` TINYINT(1), `PaginaInternet` VARCHAR(128), `NumeroExterior` VARCHAR(20), `NumeroInterior` VARCHAR(20), `numextension` VARCHAR(10), `idmetodopago` VARCHAR(10), `cuatrodigitos` VARCHAR(4), `idcuadrante` INT, `idrequieredocsfacturacion` TINYINT(1), `trdpartybill` TINYINT(1), `InstruccionesEsp` VARCHAR(256),cliUsuario VARCHAR(30),cliPass VARCHAR(50),cliPartner VARCHAR(1),cliAccountNumPartnerPriority VARCHAR(30),cliUserSaas VARCHAR(30),cliPassSaas VARCHAR(30),cliClientCodeSaas VARCHAR(30),cliProfileCodeSaas VARCHAR(30))
BEGIN
insert into sgac_clientes(cliNombre,cliDireccion,cliColonia,cliCodigoPostal,cliRFC,paiId,estId,cliCiudad,cliCorreo,cliTel,cliContactoPrincipal,venId,ctcId,ctdcId,cliNombreClienteAFacturar,cliremitente,cliCliente,cliDestinatario,cliCuentaNacional,cliUsuRegistro,cliFechaAlta,cliactivo,clictaame1,clictaame2,clictaame3,clictaame4,cliFactPontPesos,cliFactPontDlls,cliAA,cliLogistica,cliCANDomestic,cliUSDomestic,cliMXDomestic,cliGiroImportacion,cliGiroExportacion,clipaginainternet,cliNumeroExt,cliNumeroInt,numext,clavemetodopago,clinumtransferencia,idcuadrante,requieredocsfacturacion,3rdpartybill,InstruccionesEspeciales,cliUsuario, cliPass, cliPartner, cliAccountNumPartnerPriority, cliUserSaas, cliPassSaas, cliClientCodeSaas, cliProfileCodeSaas)values(nombre,Dirreccion,Colonia,CP,RFC,ddlpaisId,ddlEstadosId,Ciudad,Correo,Tel,contactoPrincipal,VendedorId,ddlTipoCuentaId,ddlTipoClienteId,ddlAquienSeleFacturaraId,Remitente,1,Destinatario,CuentaNacional,UsuarioID,NOW(),1,Cta1,Cta2,Cta3,Cta4,FacturaPontencial,FacturaraDolares,AA,Logistica,CanDomestic,USDomestic,MXDomestic,Importacion,Exportacion,PaginaInternet,NumeroExterior,NumeroInterior,numextension,idmetodopago,cuatrodigitos,idcuadrante,idrequieredocsfacturacion,trdpartybill,InstruccionesEsp,cliUsuario,cliPass, cliPartner, cliAccountNumPartnerPriority, cliUserSaas, cliPassSaas, cliClientCodeSaas, cliProfileCodeSaas);
END ;;
DELIMITER ;
/*!50003 DROP PROCEDURE IF EXISTS `spInsertCompetidor` */;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `spInsertCompetidor`(IN `idTipocompetidor` INT, `Idcliente` INT, `Nombre` VARCHAR(120), `Descuento` VARCHAR(120), `Precio` VARCHAR(120), `Observaciones` VARCHAR(500), `idUsuario` INT)
BEGIN
    insert into sgad_clientesprecioycompetencia(idtipocompetidor,idcliente,Nombre,descuento,precio,observaciones,idusuario,fecharegistro)values(idTipocompetidor,Idcliente,Nombre,Descuento,Precio,Observaciones,idUsuario,NOW());
END ;;
DELIMITER ;
/*!50003 DROP PROCEDURE IF EXISTS `spinsertcorteDetalle` */;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `spinsertcorteDetalle`(IN `fechaprefactura` DATETIME, `yearprefactura` VARCHAR(4), `mesprefactura` VARCHAR(25), `nummesprefactura` VARCHAR(2), `pronumber` VARCHAR(50), `shipdate` DATE, `yearshipdate` VARCHAR(4), `messhipdate` VARCHAR(25), `nummesshipdate` VARCHAR(2), `numdiashipdate` VARCHAR(2), `vendedor` VARCHAR(128), `idvendedor` INT, `tipoEmbarque` VARCHAR(128), `tipoFlete` VARCHAR(128), `origen` VARCHAR(256), `shipper` VARCHAR(256), `destino` VARCHAR(256), `consigne` VARCHAR(256), `BillTo` VARCHAR(256), `idcuenta` INT, `tipopeso` VARCHAR(10), `peso` DECIMAL(18,2), `MonedaFactura` VARCHAR(20), `CostoFleteUS` DECIMAL(18,2), `importeFleteUS` DECIMAL(18,2), `utilidadFleteUS` DECIMAL(18,2), `MonedaFleteUS` VARCHAR(20), `CostoFleteMX` DECIMAL(18,2), `MonedaCostoFleteMX` VARCHAR(20), `importeFleteMX` DECIMAL(18,2), `utilidadFleteMX` DECIMAL(18,2), `CostoBording` DECIMAL(18,2), `importeBording` DECIMAL(18,2), `utilidadBording` DECIMAL(18,2), `MonedaBording` VARCHAR(20), `gastoTotal` DECIMAL(18,2), `importeTotal` DECIMAL(18,2), `utilidadTotal` DECIMAL(18,2), `TipoCambioCompra` DECIMAL(18,2), `TipoCambioVenta` DECIMAL(18,2))
BEGIN
	insert into sgao_cierremesdetalle(fechaprefactura,yearprefactura,mesprefactura,nummesprefactura,pronumber,shipdate,yearshipdate,messhipdate,nummesshipdate,numdiashipdate,vendedor,idvendedor,tipoEmbarque,tipoFlete,origen,shipper,destino,consigne,BillTo,idcuenta,tipopeso,peso,MonedaFactura,CostoFleteUS,importeFleteUS,utilidadFleteUS, MonedaFleteUS, CostoFleteMX, MonedaCostoFleteMX, importeFleteMX, utilidadFleteMX,CostoBording, importeBording,utilidadBording,MonedaBording,gastoTotal,importeTotal,utilidadTotal,TipoCambioCompra,TipoCambioVenta)
    values(fechaprefactura,yearprefactura,mesprefactura,nummesprefactura,pronumber,shipdate,yearshipdate,messhipdate,nummesshipdate,numdiashipdate,vendedor,idvendedor,tipoEmbarque,tipoFlete,origen,shipper,destino,consigne,BillTo,idcuenta,tipopeso,peso,MonedaFactura,CostoFleteUS,importeFleteUS,utilidadFleteUS,MonedaFleteUS,CostoFleteMX,MonedaCostoFleteMX,importeFleteMX,utilidadFleteMX,CostoBording, importeBording,utilidadBording,MonedaBording,gastoTotal,importeTotal,utilidadTotal,TipoCambioCompra,TipoCambioVenta);
END ;;
DELIMITER ;
/*!50003 DROP PROCEDURE IF EXISTS `spinsertcorteTotales` */;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `spinsertcorteTotales`(IN `idcliente` INT, `cliente` VARCHAR(128), `yearcierre` VARCHAR(4), `mes` VARCHAR(20), `mescorto` VARCHAR(3), `nummes` INT, `gastousd` DECIMAL(18,2), `importeusd` DECIMAL(18,2), `utilidadusd` DECIMAL(18,2), `gastomxn` DECIMAL(18,2), `importemxn` DECIMAL(18,2), `utilidadmxn` DECIMAL(18,2), `totalembarquesusd` INT, `totalpesousd` DECIMAL(18,2), `totalembarquesmxn` INT, `totalpesomxn` DECIMAL(18,2))
BEGIN
	insert into sgao_cierremestotales(fecharegistro, idcliente, cliente, yearcierre, mes, mescorto, nummes, gastousd, importeusd, utilidadusd, gastomxn, importemxn, utilidadmxn, totalembarquesusd, totalpesousd, totalembarquesmxn, totalpesomxn)
    values(NOW(),idcliente, cliente, yearcierre, mes, mescorto, nummes, gastousd, importeusd, utilidadusd, gastomxn, importemxn, utilidadmxn, totalembarquesusd, totalpesousd, totalembarquesmxn, totalpesomxn);
END ;;
DELIMITER ;
/*!50003 DROP PROCEDURE IF EXISTS `spInsertCotizacion` */;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `spInsertCotizacion`(IN `moneda` VARCHAR(45), `idtiposervicio` INT, `tiposervicio` VARCHAR(128), `idterminodepago` INT, `terminodepago` VARCHAR(64), `fechaefectiva` DATE, `fechaexpiracion` DATE, `nombrecatalogotarifa` VARCHAR(128), `origenpais` VARCHAR(50), `origenestado` VARCHAR(128), `origenciudad` VARCHAR(128), `origencp` VARCHAR(10), `destinopais` VARCHAR(50), `destinoestado` VARCHAR(128), `destinociudad` VARCHAR(128), `destinocp` VARCHAR(10), `border` VARCHAR(50), `guid` VARCHAR(45))
BEGIN
		insert into sgao_cotizaciones(fecharegistro,moneda,idtiposervicio, tiposervicio, idterminodepago, terminodepago, fechaefectiva, fechaexpiracion, nombrecatalogotarifa, origenpais, origenestado, origenciudad, origencp, destinopais, destinoestado, destinociudad, destinocp, border, guid)values(NOW(),moneda, idtiposervicio, tiposervicio, idterminodepago, terminodepago, fechaefectiva, fechaexpiracion, nombrecatalogotarifa, origenpais, origenestado, origenciudad, origencp, destinopais, destinoestado, destinociudad, destinocp, border, guid);
        SELECT LAST_INSERT_ID();
END ;;
DELIMITER ;
/*!50003 DROP PROCEDURE IF EXISTS `spInsertCotizacionCargosOpcionales` */;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `spInsertCotizacionCargosOpcionales`(IN `idcotizacion` INT, `idcargoopcionales` INT, `cargosopcionales` VARCHAR(50), `costo` DECIMAL(18,2))
BEGIN
		insert into sgao_cotizacionescargoadicionales(fecharegistro,idcotizacion, idcargoopcionales, cargosopcionales, costo)values(NOW(),idcotizacion, idcargoopcionales, cargosopcionales, costo);
		SELECT LAST_INSERT_ID();
END ;;
DELIMITER ;
/*!50003 DROP PROCEDURE IF EXISTS `spInsertCotizacionCargosSTD` */;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `spInsertCotizacionCargosSTD`(IN `idcotizacion` INT, `idcargoestandar` INT, `cargoestandar` VARCHAR(50), `costo` DECIMAL(18,2))
BEGIN
		insert into sgao_cotizacionescargostd(idcotizacion, idcargoestandar, cargoestandar, costo)values(NOW(), idcotizacion, idcargoestandar, cargoestandar, costo);
		SELECT LAST_INSERT_ID();
END ;;
DELIMITER ;
/*!50003 DROP PROCEDURE IF EXISTS `spInsertCotizacionesCostos` */;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `spInsertCotizacionesCostos`(IN `idcotizacion` INT, `idcotizacionmer` INT, `pesototallb` DOUBLE, `clase` DOUBLE, `divisor` INT, `resultadodivision` DOUBLE, `nombretarifa1` VARCHAR(128), `tarifauno` DOUBLE, `t1costototal` DOUBLE, `nombretarifa2` VARCHAR(128), `tarifados` DOUBLE, `t2costototal` DOUBLE, `tarifaseleccionada` DOUBLE)
BEGIN
		insert into sgao_cotizacionescostos(idcotizacion,idcotizacionmer, pesototallb, clase, divisor, resultadodivision, nombretarifa1, tarifauno, t1costototal, nombretarifa2, tarifados, t2costototal, tarifaseleccionada)values(idcotizacion,idcotizacionmer, pesototallb, clase, divisor, resultadodivision, nombretarifa1, tarifauno, t1costototal, nombretarifa2, tarifados, t2costototal, tarifaseleccionada);
END ;;
DELIMITER ;
/*!50003 DROP PROCEDURE IF EXISTS `spInsertCotizacionMercancias` */;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `spInsertCotizacionMercancias`(IN `idcotizacion` INT, `descripcion` VARCHAR(250), `unidadmedida` VARCHAR(128), `pesolb` VARCHAR(20), `pesokg` VARCHAR(20), `ctdpiezas` INT, `largo` VARCHAR(20), `ancho` VARCHAR(20), `alto` VARCHAR(20), `clase` VARCHAR(20), `densidad` VARCHAR(20), `volmt3` VARCHAR(20), `volpies3` VARCHAR(20))
BEGIN
		insert into sgao_cotizacionmercancias(fecharegistro, idcotizacion, descripcion, unidadmedida, pesolb, pesokg, ctdpiezas, largo, ancho, alto, clase, densidad, volmt3, volpies3)values(NOW(), idcotizacion, descripcion, unidadmedida, pesolb, pesokg, ctdpiezas, largo, ancho, alto, clase, densidad, volmt3, volpies3);
        SELECT LAST_INSERT_ID();
END ;;
DELIMITER ;
/*!50003 DROP PROCEDURE IF EXISTS `spInsertExpo` */;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `spInsertExpo`(IN `idCliente` INT, `ComoEselFleteABorder` VARCHAR(120), `TipoEmbarque` VARCHAR(120), `EmbBorderxMes` VARCHAR(10), `PesoPromedioEmb` VARCHAR(120), `QuienSeleccionaElCarrierMex` VARCHAR(120), `QuienPagaPorelFlete` VARCHAR(120), `TiempoPromedioTransito` VARCHAR(120), `QuienSeleccionaCarrierBorder` VARCHAR(120), `LTLEmbtoBorderMensual` VARCHAR(120), `PesoPromedioEmbBorder` VARCHAR(120), `QuienPagaPorUsFlete` VARCHAR(120), `CSI` VARCHAR(120), `idusuario` INT)
BEGIN
			insert into sgad_clientesexpomexico(idcliente,ComoEselFleteABorder,TipoEmbarque,EmbBorderxMes,PesoPromedioEmb,QuienSeleccionaElCarrierMex,QuienPagaPorelFlete,TiempoPromedioTransito,QuienSeleccionaCarrierBorder,LTLEmbtoBorderMensualctd,PesoPromedioEmbBorder,QuienPagaPorUsFlete,CSI,idusuario,fecharegistro)
			values(idCliente,ComoEselFleteABorder,TipoEmbarque,EmbBorderxMes,PesoPromedioEmb,QuienSeleccionaElCarrierMex,QuienPagaPorelFlete,TiempoPromedioTransito,QuienSeleccionaCarrierBorder,LTLEmbtoBorderMensual,PesoPromedioEmbBorder,QuienPagaPorUsFlete,CSI,idusuario,NOW());
END ;;
DELIMITER ;
/*!50003 DROP PROCEDURE IF EXISTS `spInsertImpo` */;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `spInsertImpo`(IN `idCliente` INT, `LTLshpToBorderMens` VARCHAR(128), `PesoPromedioEmb` INT, `RawMaterial` VARCHAR(128), `ComoSeEnvia` VARCHAR(128), `SeconsolidaBorderyFordwarder` VARCHAR(128), `QuienSeleccionaElCarrierMex` VARCHAR(128), `QuienPagaPorelFlete` VARCHAR(128), `TiempoPromedioTransito` VARCHAR(128), `ComoRastreaLaCargaEnMexico` VARCHAR(128), `CSI` VARCHAR(128), `idusuario` INT)
BEGIN
			insert into sgad_clientesimpomexico(idcliente,LTLshpToBorderMens,PesoPromedioEmb,RawMaterial,ComoSeEnvia,SeconsolidaBorderyFordwarder,QuienSeleccionaElCarrierMex,QuienPagaPorelFlete,TiempoPromedioTransito,ComoRastreaLaCargaEnMexico,CSI,idusuario,fecharegistro)values(idCliente,LTLshpToBorderMens,PesoPromedioEmb,RawMaterial,ComoSeEnvia,SeconsolidaBorderyFordwarder,QuienSeleccionaElCarrierMex,QuienPagaPorelFlete,TiempoPromedioTransito,ComoRastreaLaCargaEnMexico,CSI,idusuario,NOW());
END ;;
DELIMITER ;
/*!50003 DROP PROCEDURE IF EXISTS `spInsertMercanciaCliente` */;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `spInsertMercanciaCliente`(IN `Cliid` INT, `Nmfc` VARCHAR(128), `Tipomercancia` VARCHAR(128), `Valorestimado` VARCHAR(128), `HazmatUPN` VARCHAR(128), `Mercancia` VARCHAR(256), `Densidad` VARCHAR(20), `Clase` VARCHAR(20), `PromedioPaletaLargo` VARCHAR(20), `PromedioPaletaAncho` VARCHAR(20), `PromedioPaletaAlto` VARCHAR(20), `PromedioPesoPaleta` VARCHAR(20), `PorcentajeTotalMix` VARCHAR(20), `Orden` INT, `Idusuario` INT)
BEGIN
    insert into sgad_clientestiposmercancias(cliid,NMFC,tipomercancia,valorestimado,hazmatUPN,mercancia,Densidad,Clase,PromedioPaletaLargo,PromedioPaletaAncho,PromedioPaletaAlto,PromedioPesoPaleta,PorcentajeTotalMix,orden,idusuario,fecharegistro)
									  values(Cliid,Nmfc,Tipomercancia,Valorestimado,HazmatUPN,Mercancia,Densidad,Clase,PromedioPaletaLargo,PromedioPaletaAncho,PromedioPaletaAlto,PromedioPesoPaleta,PorcentajeTotalMix,Orden,Idusuario,NOW());
END ;;
DELIMITER ;
/*!50003 DROP PROCEDURE IF EXISTS `spObtenerTotal` */;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `spObtenerTotal`(IN `Pronumber` VARCHAR(128))
BEGIN
	 
    
     DECLARE start  INT unsigned DEFAULT 1;  
     DECLARE finish INT unsigned DEFAULT 10;

     SELECT  start, finish;
END ;;
DELIMITER ;
/*!50003 DROP PROCEDURE IF EXISTS `spReporteDetalleBilling` */;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `spReporteDetalleBilling`(IN `ProveedorMX` VARCHAR(128), `fechainicial` DATE, `fechafinal` DATE, `TipoMoneda` VARCHAR(20))
BEGIN
	select FechaCaptura,date(FechaRecoleccion) as FechaRecoleccion,Cast(Pronumber as CHAR(30)) as Pronumber,CarrierMX,MXCarrierPro,Peso,TipoPeso,Pza,Origen,Destino, 
	CostoFleteMX,biltypeoffreight,bilTipoGateway,bilTipoEquipo,COSTOMXSUBTOTALFACTURA,COSTOMXIVA,COSTOMXRETENCION,COSTOMXTOTAL,Moneda,
     case 
		WHEN Moneda="Dolares" then CostoFleteMX
        WHEN Moneda="Pesos" then COSTOMXTOTAL
	end as Total,
    idEmbarque
	from vReporteBilling2  
    
    where (CarrierMX=ProveedorMX and Moneda=TipoMoneda COLLATE utf8_unicode_ci  and   (fecharecoleccion>=fechainicial and fecharecoleccion<=fechafinal)) 
    order by fecharecoleccion asc;
END ;;
DELIMITER ;
/*!50003 DROP PROCEDURE IF EXISTS `spReporteDetalleBillingAll` */;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `spReporteDetalleBillingAll`(IN `fechainicial` DATE, `fechafinal` DATE, `TipoMoneda` VARCHAR(20))
BEGIN
select FechaCaptura,date(FechaRecoleccion) as FechaRecoleccion,Cast(Pronumber as CHAR(30)) as Pronumber,CarrierMX,MXCarrierPro,Peso,TipoPeso,Pza,
OrigenCiudad,
OrigenEstado,
OrigenCP,
DestinoCiudad,
DestinoEstado,
DestinoCP, 
	CostoFleteMX,biltypeoffreight,bilTipoGateway,bilTipoEquipo,COSTOMXSUBTOTALFACTURA,COSTOMXIVA,COSTOMXRETENCION,COSTOMXTOTAL,Moneda,
     case 
		WHEN Moneda="Dolares" then CostoFleteMX
        WHEN Moneda="Pesos" then COSTOMXTOTAL
	end as Total,
    idEmbarque
	from vReporteBilling2  
    where (Moneda=TipoMoneda COLLATE utf8_unicode_ci  and   (fecharecoleccion>=fechainicial and fecharecoleccion<=fechafinal)) 
    order by fecharecoleccion asc;
END ;;
DELIMITER ;
/*!50003 DROP PROCEDURE IF EXISTS `spReporteDetalleBillingDestinosEspecificos` */;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `spReporteDetalleBillingDestinosEspecificos`(IN `ProveedorMX` VARCHAR(128), `fechainicial` DATE, `fechafinal` DATE, `TipoMoneda` VARCHAR(20))
BEGIN
	select FechaCaptura,date(FechaRecoleccion) as FechaRecoleccion,Cast(Pronumber as CHAR(30)) as Pronumber,CarrierMX,MXCarrierPro,Peso,TipoPeso,Pza,Origen,Destino, 
	CostoFleteMX,FacturadoFleteMEX,PLMX,FleteMEXIVA,FleteMEXRetencion,FleteMEXFacturadoconIva,Moneda,
    case 
		WHEN TipoMoneda="Dolares" then FacturadoFleteMEX
        WHEN TipoMoneda="Pesos" then FleteMEXFacturadoconIva
	end as Total
	from vReporteBilling2  where (CarrierMX=ProveedorMX and Moneda=TipoMoneda COLLATE utf8_unicode_ci and (fecharecoleccion>=fechainicial and fecharecoleccion<=fechafinal))  and (
	(Origen like '%Nuevo Laredo%' and (Destino like '%CDMX%' or Destino like '%Ciudad de Mexico%' or Destino like '%Distrito Federal%')) or (
	Origen like '%Nuevo Laredo%' and (Destino like '%MONTERREY%')) or (
	Origen like '%Nuevo Laredo%' and (Destino like '%GUADALAJARA%')) or (
	(Origen like '%CDMX%' or Origen like '%Ciudad de Mexico%' or Origen like '%Distrito Federal%') and (Destino like '%MONTERREY%')) or 
	Origen like '%MONTERREY%' and (Destino like '%NUEVO LAREDO%')
	);
END ;;
DELIMITER ;
/*!50003 DROP PROCEDURE IF EXISTS `spReporteDetalleBillingUSA` */;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `spReporteDetalleBillingUSA`(IN `ProveedorMX` VARCHAR(128), `fechainicial` DATE, `fechafinal` DATE, `TipoMoneda` VARCHAR(20))
BEGIN
	select FechaCaptura,date(FechaRecoleccion) as FechaRecoleccion,Cast(Pronumber as CHAR(30)) as Pronumber,CarrierUSA as CarrierMX,CarrierUSAInvoice as MXCarrierPro,Peso,TipoPeso,Pza,Origen,Destino,biltypeoffreight,bilTipoGateway,bilTipoEquipo,CostoFleteUSA as TOTAL,Moneda,idEmbarque
	from vReporteBilling2  where (CarrierUSA=ProveedorMX and Moneda=TipoMoneda COLLATE utf8_unicode_ci and (fecharecoleccion>=fechainicial and fecharecoleccion<=fechafinal))
    order by fecharecoleccion asc;
END ;;
DELIMITER ;
/*!50003 DROP PROCEDURE IF EXISTS `spReporteDetalleBillingUSAAll` */;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `spReporteDetalleBillingUSAAll`(IN `fechainicial` DATE, `fechafinal` DATE, `TipoMoneda` VARCHAR(20))
BEGIN
	select FechaCaptura,date(FechaRecoleccion) as FechaRecoleccion,Cast(Pronumber as CHAR(30)) as Pronumber,CarrierUSA as CarrierMX,CarrierUSAInvoice as MXCarrierPro,Peso,TipoPeso,Pza,
OrigenCiudad,
OrigenEstado,
OrigenCP,
DestinoCiudad,
DestinoEstado,
DestinoCP,
    biltypeoffreight,bilTipoGateway,CostoFleteUSA as TOTAL,Moneda,idEmbarque
	from vReporteBilling2  where (Moneda=TipoMoneda COLLATE utf8_unicode_ci and (fecharecoleccion>=fechainicial and fecharecoleccion<=fechafinal))
    order by fecharecoleccion asc;
END ;;
DELIMITER ;
/*!50003 DROP PROCEDURE IF EXISTS `spReporteVentasGastoImp` */;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `spReporteVentasGastoImp`(IN `TipoRespuesta` VARCHAR(10), `TipoMoneda` VARCHAR(10), `fecha` DATE, `idcliente` INT)
BEGIN
	
	
    IF  TipoRespuesta = 'GASTO' AND TipoMoneda='Dolares' THEN 
			select 
			FORMAT((sum(CostoFleteUS) + sum(CostoBording) + (select SUM(CostoFleteMX) from vreporteventasgastoimporte  where year=DATE_FORMAT(fecha, '%Y') and  nummes=DATE_FORMAT(fecha, '%m') and cuentaid=idcliente and MonedaCostoFleteMX='Dolares')),2) as GASTOUSD
			from vreporteventasgastoimporte 
			where year=DATE_FORMAT(fecha, '%Y') and  nummes=DATE_FORMAT(fecha, '%m') and cuentaid=idcliente; 
         END IF;
    
    

    
END ;;
DELIMITER ;
/*!50003 DROP PROCEDURE IF EXISTS `spReporteVentasMain` */;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `spReporteVentasMain`(IN `TipoReporte` INT, `idcliente` INT, `fechainicial` DATE, `fechafinal` DATE, `idvendedorp` INT)
BEGIN
		
    
    IF  TipoReporte = 1 THEN 
		 select cuentaid,BillTo,MonedaFactura,CostoFleteUS,importeFleteUS,MonedaFleteUS,CostoFleteMX,MonedaCostoFleteMX,importeFleteMX,CostoBording,importeBording,MonedaBording,TipoCambioCompra,TipoCambioVenta,shipdate,Pronumber,NumFactura,FechaFactura,FechaPago  from vreporteventasmain where year=DATE_FORMAT(fechainicial, '%Y') and  nunmes=DATE_FORMAT(fechainicial, '%m') order by shipdate asc;
         END IF;
         
	IF  TipoReporte = 2 THEN 
		 select cuentaid,BillTo,CostoFleteUS,importeFleteUS,MonedaFleteUS,CostoBording,importeBording,MonedaBording,CostoFleteMX,MonedaCostoFleteMX,importeFleteMX,MonedaFactura,TipoCambioCompra,TipoCambioVenta  from vreporteventasmain where year=DATE_FORMAT(fechainicial, '%Y') and  nunmes=DATE_FORMAT(fechainicial, '%m') and cuentaid=idcliente order by billto asc;
         END IF;
         
    IF  TipoReporte = 3 THEN 
		  select  shipdate,pronumber,idvendedor,tipoembarque,tipoflete,origen,shipper,destino,Consigne,BillTo,MonedaFactura,tipopeso,peso,CostoFleteUS,importeFleteUS,MonedaFleteUS,CostoFleteMX,MonedaCostoFleteMX,importeFleteMX,CostoBording,importeBording,MonedaBording,TipoCambioCompra,TipoCambioVenta,numfactura,fechafactura,fechapago   from vreporteventasmain where idvendedor=idvendedorp  and (shipdate>=fechainicial and  shipdate<=fechafinal) order by shipdate asc;
         END IF;
END ;;
DELIMITER ;
/*!50003 DROP PROCEDURE IF EXISTS `spTotalesPromedios` */;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `spTotalesPromedios`(IN `ProveedorMX` VARCHAR(128), `fechainicial` DATE, `fechafinal` DATE, `TipoMoneda` VARCHAR(20))
BEGIN
	select count(GalherPro) as TotalEmbarques,FORMAT(SUM(Peso),2) as TotalPesoEmbarques,TipoPeso,FORMAT(Sum(CostoFleteMX),2) as TotalRevenuePaid,Moneda,
	FORMAT((SUM(Peso)/count(GalherPro)),2) as AverageWeightPerShipment,FORMAT((Sum(CostoFleteMX) / count(GalherPro)),2) as AverageCostperShipment,
	(SELECT 5 * (DATEDIFF(fechafinal, fechainicial) DIV 7) + MID('0123444401233334012222340111123400012345001234550', 7 * WEEKDAY(fechainicial) + WEEKDAY(fechafinal) + 1, 1)) as DiasLaborables,
	FORMAT((Count(GalherPro)/ (SELECT 5 * (DATEDIFF(fechafinal, fechainicial) DIV 7) + MID('0123444401233334012222340111123400012345001234550', 7 * WEEKDAY(fechainicial) + WEEKDAY(fechafinal) + 1, 1)) ),2) as AverageShipmentsPerDay
	from vReporteBilling  where (CarrierMX=ProveedorMX and Moneda=TipoMoneda COLLATE utf8_unicode_ci and (fecharecoleccion>=fechainicial and fecharecoleccion<=fechafinal))  and (
	(Origen like '%Nuevo Laredo%' and (Destino like '%CDMX%' or Destino like '%Ciudad de Mexico%' or Destino like '%Distrito Federal%')) or (
	Origen like '%Nuevo Laredo%' and (Destino like '%MONTERREY%')) or (
	Origen like '%Nuevo Laredo%' and (Destino like '%GUADALAJARA%')) or (
	(Origen like '%CDMX%' or Origen like '%Ciudad de Mexico%' or Origen like '%Distrito Federal%') and (Destino like '%MONTERREY%')) or 
	Origen like '%MONTERREY%' and (Destino like '%NUEVO LAREDO%')
	);
END ;;
DELIMITER ;
/*!50003 DROP PROCEDURE IF EXISTS `spTotalesPromediosGenerales` */;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `spTotalesPromediosGenerales`(IN `ProveedorMX` VARCHAR(128), `fechainicial` DATE, `fechafinal` DATE, `TipoMoneda` VARCHAR(20))
BEGIN

	if TipoMoneda='Dolares' then
			select count(Pronumber) as TotalEmbarques,FORMAT(SUM(Peso),2) as TotalPesoEmbarques,TipoPeso,FORMAT(Sum(CostoFleteMX),2) as TotalRevenuePaid,Moneda,
			FORMAT((SUM(Peso)/count(Pronumber)),2) as AverageWeightPerShipment,FORMAT((Sum(CostoFleteMX) / count(Pronumber)),2) as AverageCostperShipment,
			(SELECT 5 * (DATEDIFF(fechafinal, fechainicial) DIV 7) + MID('0123444401233334012222340111123400012345001234550', 7 * WEEKDAY(fechainicial) + WEEKDAY(fechafinal) + 1, 1)) as DiasLaborables,
			FORMAT((Count(Pronumber)/ (SELECT 5 * (DATEDIFF(fechafinal, fechainicial) DIV 7) + MID('0123444401233334012222340111123400012345001234550', 7 * WEEKDAY(fechainicial) + WEEKDAY(fechafinal) + 1, 1)) ),2) as AverageShipmentsPerDay
			from vReporteBilling  where (CarrierMX=ProveedorMX and Moneda=TipoMoneda COLLATE utf8_unicode_ci and (fecharecoleccion>=fechainicial and fecharecoleccion<=fechafinal));
	END IF;
    
    if TipoMoneda='Pesos' then
			select count(Pronumber) as TotalEmbarques,FORMAT(SUM(Peso),2) as TotalPesoEmbarques,TipoPeso,FORMAT(Sum(COSTOMXTOTAL),2) as TotalRevenuePaid,Moneda,
			FORMAT((SUM(Peso)/count(Pronumber)),2) as AverageWeightPerShipment,FORMAT((Sum(COSTOMXTOTAL) / count(Pronumber)),2) as AverageCostperShipment,
			(SELECT 5 * (DATEDIFF(fechafinal, fechainicial) DIV 7) + MID('0123444401233334012222340111123400012345001234550', 7 * WEEKDAY(fechainicial) + WEEKDAY(fechafinal) + 1, 1)) as DiasLaborables,
			FORMAT((Count(Pronumber)/ (SELECT 5 * (DATEDIFF(fechafinal, fechainicial) DIV 7) + MID('0123444401233334012222340111123400012345001234550', 7 * WEEKDAY(fechainicial) + WEEKDAY(fechafinal) + 1, 1)) ),2) as AverageShipmentsPerDay
			from vReporteBilling  where (CarrierMX=ProveedorMX and Moneda=TipoMoneda COLLATE utf8_unicode_ci and (fecharecoleccion>=fechainicial and fecharecoleccion<=fechafinal));
    END IF;
END ;;
DELIMITER ;
/*!50003 DROP PROCEDURE IF EXISTS `spTotalesPromediosGeneralesAll` */;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `spTotalesPromediosGeneralesAll`(IN `fechainicial` DATE, `fechafinal` DATE, `TipoMoneda` VARCHAR(20))
BEGIN
	if TipoMoneda='Dolares' then
			select count(Pronumber) as TotalEmbarques,FORMAT(SUM(Peso),2) as TotalPesoEmbarques,TipoPeso,FORMAT(Sum(CostoFleteMX),2) as TotalRevenuePaid,Moneda,
			FORMAT((SUM(Peso)/count(Pronumber)),2) as AverageWeightPerShipment,FORMAT((Sum(CostoFleteMX) / count(Pronumber)),2) as AverageCostperShipment,
			(SELECT 5 * (DATEDIFF(fechafinal, fechainicial) DIV 7) + MID('0123444401233334012222340111123400012345001234550', 7 * WEEKDAY(fechainicial) + WEEKDAY(fechafinal) + 1, 1)) as DiasLaborables,
			FORMAT((Count(Pronumber)/ (SELECT 5 * (DATEDIFF(fechafinal, fechainicial) DIV 7) + MID('0123444401233334012222340111123400012345001234550', 7 * WEEKDAY(fechainicial) + WEEKDAY(fechafinal) + 1, 1)) ),2) as AverageShipmentsPerDay
			from vReporteBilling  where (Moneda=TipoMoneda COLLATE utf8_unicode_ci and (fecharecoleccion>=fechainicial and fecharecoleccion<=fechafinal));
	END IF;
    
    if TipoMoneda='Pesos' then
			select count(Pronumber) as TotalEmbarques,FORMAT(SUM(Peso),2) as TotalPesoEmbarques,TipoPeso,FORMAT(Sum(COSTOMXTOTAL),2) as TotalRevenuePaid,Moneda,
			FORMAT((SUM(Peso)/count(Pronumber)),2) as AverageWeightPerShipment,FORMAT((Sum(COSTOMXTOTAL) / count(Pronumber)),2) as AverageCostperShipment,
			(SELECT 5 * (DATEDIFF(fechafinal, fechainicial) DIV 7) + MID('0123444401233334012222340111123400012345001234550', 7 * WEEKDAY(fechainicial) + WEEKDAY(fechafinal) + 1, 1)) as DiasLaborables,
			FORMAT((Count(Pronumber)/ (SELECT 5 * (DATEDIFF(fechafinal, fechainicial) DIV 7) + MID('0123444401233334012222340111123400012345001234550', 7 * WEEKDAY(fechainicial) + WEEKDAY(fechafinal) + 1, 1)) ),2) as AverageShipmentsPerDay
			from vReporteBilling  where (Moneda=TipoMoneda COLLATE utf8_unicode_ci and (fecharecoleccion>=fechainicial and fecharecoleccion<=fechafinal));
    END IF;
END ;;
DELIMITER ;
/*!50003 DROP PROCEDURE IF EXISTS `spTotalesPromediosGeneralesUSA` */;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `spTotalesPromediosGeneralesUSA`(IN `ProveedorMX` VARCHAR(128), `fechainicial` DATE, `fechafinal` DATE, `TipoMoneda` VARCHAR(20))
BEGIN

	select count(Pronumber) as TotalEmbarques,FORMAT(SUM(Peso),2) as TotalPesoEmbarques,TipoPeso,FORMAT(Sum(CostoFleteUSA),2) as TotalRevenuePaid,Moneda,
	FORMAT((SUM(Peso)/count(Pronumber)),2) as AverageWeightPerShipment,FORMAT((Sum(CostoFleteUSA) / count(Pronumber)),2) as AverageCostperShipment,
	(SELECT 5 * (DATEDIFF(fechafinal, fechainicial) DIV 7) + MID('0123444401233334012222340111123400012345001234550', 7 * WEEKDAY(fechainicial) + WEEKDAY(fechafinal) + 1, 1)) as DiasLaborables,
	FORMAT((Count(Pronumber)/ (SELECT 5 * (DATEDIFF(fechafinal, fechainicial) DIV 7) + MID('0123444401233334012222340111123400012345001234550', 7 * WEEKDAY(fechainicial) + WEEKDAY(fechafinal) + 1, 1)) ),2) as AverageShipmentsPerDay
	from vReporteBilling  where (CarrierUSA=ProveedorMX and Moneda=TipoMoneda COLLATE utf8_unicode_ci and (fecharecoleccion>=fechainicial and fecharecoleccion<=fechafinal));
END ;;
DELIMITER ;
/*!50003 DROP PROCEDURE IF EXISTS `spTotalesPromediosGeneralesUSAAll` */;
DELIMITER ;;
CREATE DEFINER=`root`@`%` PROCEDURE `spTotalesPromediosGeneralesUSAAll`(IN `fechainicial` DATE, `fechafinal` DATE, `TipoMoneda` VARCHAR(20))
BEGIN
	select count(Pronumber) as TotalEmbarques,FORMAT(SUM(Peso),2) as TotalPesoEmbarques,TipoPeso,FORMAT(Sum(CostoFleteUSA),2) as TotalRevenuePaid,Moneda,
	FORMAT((SUM(Peso)/count(Pronumber)),2) as AverageWeightPerShipment,FORMAT((Sum(CostoFleteUSA) / count(Pronumber)),2) as AverageCostperShipment,
	(SELECT 5 * (DATEDIFF(fechafinal, fechainicial) DIV 7) + MID('0123444401233334012222340111123400012345001234550', 7 * WEEKDAY(fechainicial) + WEEKDAY(fechafinal) + 1, 1)) as DiasLaborables,
	FORMAT((Count(Pronumber)/ (SELECT 5 * (DATEDIFF(fechafinal, fechainicial) DIV 7) + MID('0123444401233334012222340111123400012345001234550', 7 * WEEKDAY(fechainicial) + WEEKDAY(fechafinal) + 1, 1)) ),2) as AverageShipmentsPerDay
	from vReporteBilling  where (Moneda=TipoMoneda COLLATE utf8_unicode_ci and (fecharecoleccion>=fechainicial and fecharecoleccion<=fechafinal));
END ;;
DELIMITER ;


