void InsertaUnidades(BO.Models.EquivalenciaBultos pEquivalencia)
        {
            // BO.BO.CalculoTafiras oTar = new BO.BO.CalculoTafiras();
            //  oTar.CalcularUnidades(pEquivalencia.BLT_NUMERO_LOCAL);
            AgenciaEF_BO.DAL.ADO.BultosDal Bultos = new BO.DAL.ADO.BultosDal();

            Bultos.InsertarCargos(pEquivalencia.BLT_NUMERO_LOCAL, pEquivalencia.BLT_NUMERO_SDQ);
        }
        void InsertaCargos(BO.Models.EquivalenciaBultos pEquivalencia)
        {
            ds.Tables["BULTOS_VALORES"].DefaultView.RowFilter = "BLT_NUMERO = " + pEquivalencia.BLT_NUMERO_SDQ.ToString();

            DataView dv = ds.Tables["BULTOS_VALORES"].DefaultView;

            var vQryBultos = unitOfWork.BultosRepository.GetByID(pEquivalencia.BLT_NUMERO_LOCAL);

            BO.BO.CalculoTafiras oTar = new BO.BO.CalculoTafiras();

            //RDE_REMITENTE
            //RDE_DESTINATARIO

            for (int i = 0; i < dv.Count; i++)
            {
                string  sCarCodigo    = dv[i]["CAR_CODIGO"].ToString().TrimEnd();
                decimal dMontoAplicar = Convert.ToDecimal(dv[i]["BVA_MONTO"]);
                //filter: s => s.PROD_ID == iProductoId && s.Cargos.CAR_BASE_ID == 29 && s.Cargos.CAR_ESTADO == true
                var sQueryCargos = unitOfWork.CargosProductoRepository.Get(filter: s => s.Cargos.CAR_CODIGO == sCarCodigo && s.Cargos.CAR_BASE_ID == 29 && s.PROD_ID == vQryBultos.PROD_ID && s.Cargos.CAR_ESTADO == true).FirstOrDefault();
                if (sQueryCargos != null)
                {
                    var vBultosValores = unitOfWork.BultosValoresRepository.Get(filter: s => s.BLT_NUMERO == pEquivalencia.BLT_NUMERO_LOCAL && s.CargosProducto.Cargos.CAR_CODIGO == sCarCodigo).FirstOrDefault();
                    if (vBultosValores != null)
                    {
                        unitOfWork.BultosValoresRepository.Delete(vBultosValores);
                    }
                    var cargosExits = unitOfWork.CargosProductoRepository.Get(filter: s => s.PROD_ID == vQryBultos.PROD_ID && s.Cargos.CAR_BASE_ID == 29 && s.Cargos.CAR_ESTADO == true &&
                                                                              s.Cargos.CAR_CODIGO == sCarCodigo).FirstOrDefault(); /*tipo cargos*/
                    BO.Models.BultosValores oBultosVal = new BO.Models.BultosValores();
                    oBultosVal.BLT_NUMERO    = vQryBultos.BLT_NUMERO;
                    oBultosVal.CARGO_PROD_ID = cargosExits.CARGO_PROD_ID;
                    oBultosVal.BVA_TASA      = cargosExits.TasaCambio.FACTOR_CONV;
                    oBultosVal.BVA_MONTO     = dMontoAplicar;
                    if (cargosExits.Cargos.CAR_DIRECTO_TABLA == "D")
                    {
                        oBultosVal.BVA_MONTO_APLICAR = dMontoAplicar;
                    }
                    else
                    {
                        oBultosVal.BVA_MONTO_APLICAR = oTar.BuscarMontoAplicar(cargosExits.CARGO_PROD_ID, dMontoAplicar, vQryBultos.CTE_ID);
                    }
                    if (oBultosVal.BVA_MONTO_APLICAR < cargosExits.Cargos.CAR_MINIMO_FACTURAR)
                    {
                        oBultosVal.BVA_MONTO_APLICAR = cargosExits.Cargos.CAR_MINIMO_FACTURAR;
                    }
                    if (cargosExits.Cargos.CAR_FIJO_MULTIPLICAR == "F")
                    {
                        oBultosVal.BVA_MONTO_LOCAL = oBultosVal.BVA_MONTO_APLICAR * cargosExits.TasaCambio.FACTOR_CONV;
                    }
                    else
                    {
                        oBultosVal.BVA_MONTO_LOCAL = dMontoAplicar * oBultosVal.BVA_MONTO_APLICAR * cargosExits.TasaCambio.FACTOR_CONV;
                    }
                    unitOfWork.BultosValoresRepository.Insert(oBultosVal);
                }
                unitOfWork.Save();
            }
        }
        void InsertaContenido(BO.Models.EquivalenciaBultos pEquivalencia)
        {
            ds.Tables["CONTENIDO_BULTOS"].DefaultView.RowFilter = "BLT_NUMERO = " + pEquivalencia.BLT_NUMERO_SDQ.ToString();

            DataView dv = ds.Tables["CONTENIDO_BULTOS"].DefaultView;

            if (dv.Count > 0)
            {
                var Bultos = unitOfWork.BultosRepository.GetByID(pEquivalencia.BLT_NUMERO_LOCAL);

                Bultos.CONTENIDO = dv[0]["COB_CONTENIDO"].ToString().TrimEnd();

                unitOfWork.BultosRepository.Update(Bultos);

                unitOfWork.Save();
            }
        }
        void InsertaRemitente(BO.Models.EquivalenciaBultos pEquivalencia)
        {
            ds.Tables["remitente_destinatario"].DefaultView.RowFilter = "BLT_NUMERO = " + pEquivalencia.BLT_NUMERO_SDQ.ToString();

            DataView dv = ds.Tables["remitente_destinatario"].DefaultView;

            //RDE_REMITENTE
            //RDE_DESTINATARIO

            if (dv.Count > 0)
            {
                var Bultos = unitOfWork.BultosRepository.GetByID(pEquivalencia.BLT_NUMERO_LOCAL);

                Bultos.REMITENTE    = dv[0]["RDE_REMITENTE"].ToString().TrimEnd();
                Bultos.DESTINATARIO = dv[0]["RDE_DESTINATARIO"].ToString().TrimEnd();

                unitOfWork.BultosRepository.Update(Bultos);

                unitOfWork.Save();
            }
        }
        bool InsertarDatos(DataRow oRow)
        {
            decimal mLargo   = 0;
            decimal mAncho   = 0;
            decimal mAlto    = 0;
            string  sOrigen  = "";
            bool    bRetorno = false;

            BO.Models.Bultos oBultos = new BO.Models.Bultos();

            //oBultos.BLT_NUMERO = -1;

            oBultos.ALM_CODIGO    = Parametros.ParametrosSucursal.CodigoAlmacen;
            oBultos.BLT_UBICACION = Parametros.ParametrosSucursal.Ubicacion;
            oBultos.SUC_ID        = Parametros.ParametrosSucursal.IdSucursal;

            var oCliente = unitOfWork.ClientesRepository.ClienteIdFromEps(oRow["CTE_NUMERO_EPS"].ToString().TrimEnd());

            if (oCliente.Count() != 0)
            {
                oBultos.CTE_ID = oCliente.FirstOrDefault().CTE_ID;
            }
            else
            {
                oBultos.CTE_ID = 1;
                sErrores.AppendLine("Cliente no Existe: " + oRow["CTE_NUMERO_EPS"].ToString());
                return(bRetorno);
            }
            //  oRow["PRO_CODIGO"]
            //    oRow["SUP_CODIGO"]
            //ORI_CODIGO
            /* */
            //var weii = oRow["ORI_CODIGO"].ToString().TrimEnd() + oRow["SUP_CODIGO"].ToString().TrimEnd() +
            //    oRow["PRO_CODIGO"].ToString().TrimEnd();

            if (oRow["PRO_CODIGO"].ToString().TrimEnd() == "019")
            {
                oRow["SUP_CODIGO"] = "EPS";
                oRow["ORI_CODIGO"] = "DOM";
            }

            var oProd = unitOfWork.ProductosRepository.ProdIdFromCode(oRow["ORI_CODIGO"].ToString().TrimEnd(),
                                                                      oRow["SUP_CODIGO"].ToString().TrimEnd(),
                                                                      oRow["PRO_CODIGO"].ToString().TrimEnd()).FirstOrDefault();

            oBultos.PROD_ID        = oProd.PROD_ID;
            oBultos.MAN_MANIFIESTO = oRow["MAN_MANIFIESTO"].ToString();
            oBultos.BLT_GUIA_HIJA  = oRow["BLT_GUIA_HIJA"].ToString();

            oBultos.BLT_CODIGO_BARRA = oRow["BLT_CODIGO_BARRA"].ToString();
            sOrigen = oRow["BLT_DESTINO"].ToString();
            if (sOrigen.TrimEnd() == "")
            {
                sOrigen = "SDQ";
            }


            if (oRow["BLT_GUIA_HIJA"].ToString() == "")
            {
                oBultos.BLT_GUIA_HIJA = oBultos.BLT_CODIGO_BARRA;
            }

            var sQryDst = unitOfWork.OrigenRepository.Get(filter: s => s.ORI_CODIGO == sOrigen).FirstOrDefault();

            oBultos.DEST_ID = sQryDst.ORI_ID;

            oBultos.BLT_PIEZAS          = Convert.ToInt32(oRow["BLT_PIEZAS"]);
            oBultos.BLT_PIEZAS_SUPLIDOR = Convert.ToInt32(oRow["BLT_PIEZAS_SUPLIDOR"]);
            oBultos.BLT_PESO            = Convert.ToDecimal(oRow["BLT_PESO"]);
            oBultos.BLT_PESO_SUPLIDOR   = Convert.ToDecimal(oRow["BLT_PESO_SUPLIDOR"]);
            oBultos.BLT_PESO_REAL       = Convert.ToDecimal(oRow["BLT_PESO_REAL"]);


            oBultos.BLT_ESTADO_ID = 2;
            //revisar
            oBultos.BLT_BOLSA_SUPLIDOR = oRow["BLT_BOLSA_SUPLIDOR"].ToString().TrimEnd();
            //
            oBultos.BLT_RECEP_SUPLIDOR  = Convert.ToDateTime(oRow["BLT_RECEP_SUPLIDOR"]);
            oBultos.BLT_DESPA_SUPLIDOR  = oRow["BLT_DESPA_SUPLIDOR"].ToString() == "" ? DateTime.Now : Convert.ToDateTime(oRow["BLT_DESPA_SUPLIDOR"]);
            oBultos.BLT_FECHA_RECEPCION = DateTime.Now;
            //oBultos.BLT_FECHA_ENTREGADO = DateTime.Parse("01/01/1900");
            oBultos.BLT_ENTREGAR   = true;
            oBultos.BLT_VENTANILLA = 0;
            oBultos.USUARIO_ID     = 1;
            oBultos.FECHA_MODIF    = DateTime.Now;


            sOrigen = oRow["BLT_ORIGEN"].ToString();
            if (sOrigen.TrimEnd() == "")
            {
                sOrigen = "MIA";
            }

            oBultos.ORI_ID = unitOfWork.OrigenRepository.Get(filter: s => s.ORI_CODIGO == sOrigen).FirstOrDefault().ORI_ID;

            oBultos.BLT_TRACKING_NUMBER = oRow["BLT_TRACKING_NUMBER"].ToString().TrimEnd();

            if (oRow["MAN_GUIA"].ToString() == "")
            {
                oBultos.MAN_GUIA = "NA";
            }
            else
            {
                oBultos.MAN_GUIA = oRow["MAN_GUIA"].ToString();
            }

            oBultos.CON_CODIGO_ID = 7;

            if (oRow["BLT_VALOR_FOB"].ToString() == "")
            {
                oBultos.BLT_VALOR_FOB = 0;
            }
            else
            {
                oBultos.BLT_VALOR_FOB = Convert.ToDecimal(oRow["BLT_VALOR_FOB"]);
            }

            oBultos.BLT_OBSERVACION = oRow["BLT_OBSERVACION"].ToString();

            oBultos.BLT_ALTO           = 1;
            oBultos.BLT_ANCHO          = 1;
            oBultos.BLT_LARGO          = 1;
            oBultos.BLT_ABIERTO_ADUANA = false;
            oBultos.BLT_ADUANA         = false;
            oBultos.BLT_VOLUMEN        = 0;
            //
            oBultos.BLT_MANIFIESTO_SUCURSAL = "NA";
            oBultos.BLT_BOLSA_SUCURSAL      = "NA";

            //Inserto contenido
            ds.Tables["CONTENIDO_BULTOS"].DefaultView.RowFilter = "BLT_NUMERO = " + oRow["BLT_NUMERO"].ToString();

            DataView dv = ds.Tables["CONTENIDO_BULTOS"].DefaultView;

            if (dv.Count > 0)
            {
                oBultos.CONTENIDO = dv[0]["COB_CONTENIDO"].ToString().TrimEnd();
            }
            //
            ds.Tables["remitente_destinatario"].DefaultView.RowFilter = "BLT_NUMERO = " + oRow["BLT_NUMERO"].ToString();

            dv = ds.Tables["remitente_destinatario"].DefaultView;

            if (dv.Count > 0)
            {
                oBultos.REMITENTE    = dv[0]["RDE_REMITENTE"].ToString().TrimEnd();
                oBultos.DESTINATARIO = dv[0]["RDE_DESTINATARIO"].ToString().TrimEnd();
            }
            else
            {
                oBultos.REMITENTE    = "NA";
                oBultos.DESTINATARIO = "NA";
            }



            try
            {
                unitOfWork.BultosRepository.Insert(oBultos);

                BO.Models.EquivalenciaBultos oEquivalencia = new BO.Models.EquivalenciaBultos();


                unitOfWork.Save();

                oEquivalencia.BLT_NUMERO_LOCAL = oBultos.BLT_NUMERO;
                oEquivalencia.BLT_NUMERO_SDQ   = Convert.ToInt32(oRow["BLT_NUMERO"].ToString());
                oEquivalencia.FECHA_CAMBIO     = DateTime.Now;
                oEquivalencia.FECHA_INGREO     = DateTime.Now;

                unitOfWork.EquivalenciaBultosRepository.Insert(oEquivalencia);

                unitOfWork.Save();
                bRetorno = true;
            }
            catch (System.Data.Entity.Validation.DbEntityValidationException e)
            {
                foreach (var eve in e.EntityValidationErrors)
                {
                    string s = "";

                    /*
                     * Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                     *  eve.Entry.Entity.GetType().Name, eve.Entry.State);
                     */


                    foreach (var ve in eve.ValidationErrors)
                    {
                        s += ve.ErrorMessage + "\n";

                        /*Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                         *  ve.PropertyName, ve.ErrorMessage);*/
                    }
                    //MessageBox.Show("Existen los siguientes errores:" + s, "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    sErrores.AppendLine("Error: Bulto:" + oRow["BLT_NUMERO"].ToString() + s);
                }
                //throw;
            }
            catch (Exception ex)
            {
                sErrores.AppendLine("Error:  Bulto:" + oRow["BLT_NUMERO"].ToString() + " " + ex.Message.ToString());

                //throw ex;
                //MessageBox.Show("Error..>" + ex.Message.ToString());
            }

            return(bRetorno);
        }