Beispiel #1
0
 public fx_GeneradorXML_Comprobante_Info(string _IdComprobante, DateTime _Fecha, eTipoComprobante _TipoCbte
                                         , string _Observacion, guiaRemision _cbtGR)
 {
     IdComprobante = _IdComprobante;
     Fecha         = _Fecha;
     TipoCbte      = _TipoCbte;
     Observacion   = _Observacion;
     cbtGR         = _cbtGR;
 }
Beispiel #2
0
 public TipoComprobante_Info()
 {
     CbteFactura        = new factura();
     CbteFactura_evento = new factura();
     cbteRet            = new comprobanteRetencion();
     cbteNC             = new notaCredito();
     cbteDeb            = new notaDebito();
     cbtGR = new guiaRemision();
 }
Beispiel #3
0
 public Comprobante_Info(string _IdComprobante, DateTime _Fecha, Core.Erp.Info.General.Cl_Enumeradores.eTipoComprobante _TipoCbte
                         , string _Observacion, guiaRemision _cbtGR)
 {
     IdComprobante = _IdComprobante;
     Fecha         = _Fecha;
     TipoCbte      = _TipoCbte;
     Observacion   = _Observacion;
     cbtGR         = _cbtGR;
 }
Beispiel #4
0
        List <guiaRemision> fx_GeneradorXML_IGuia.GetGuiaLogistica(DateTime FechaIni, DateTime FechaFin, string ConexionDBCliente, string OconEfirm, string FormatoFechaSRI, string formatoFechaDB)
        {
            DateTime Fi = Convert.ToDateTime(FechaIni.ToShortDateString());
            DateTime Ff = Convert.ToDateTime(FechaFin.ToShortDateString());
            string   sFi, sFf;

            sFi = string.Format(formatoFechaDB, Fi);
            sFf = string.Format(formatoFechaDB, Ff);


            try
            {
                List <guiaRemision> lista = new List <guiaRemision>();
                using (SqlConnection conexion = new SqlConnection(ConexionDBCliente))
                {
                    conexion.Open();
                    string sqlcabFact = "SELECT        gui.IdGuia, gui.IdEmpacadora, gui.IdVehiculo, gui.IdChofer, gui.IdPlanificacion,cast( gui.Fecha as date)Fecha, gui.Hora, cat_ori.Descripcion AS cat_ori, cat_des.Descripcion AS cat_des, gui.CodDocumentoTipo, gui.Establecimiento,  " +
                                        " gui.PuntoEmision, gui.NumDocumento, gui.Observacion, gui.CapacidadLibrasTotal, gui.CapacidadLibrasProg, gui.CapacidadBines, gui.ValorFlete, gui.ValorPorLibra, gui.ValorAFacturar, emp.Descripcion AS emp,  " +
                                        " emp.Direccion AS dir_emp, veh.Placa, chof.pe_cedulaRuc AS CedRucChof, chof.pe_nombreCompleto AS Chofer, dbo.tb_persona.pe_cedulaRuc AS CedRuccli, dbo.tb_persona.pe_direccion AS DirCli,  " +
                                        " dbo.tb_persona.pe_nombreCompleto AS RazSocCli, em_ruc, RazonSocial, em_direccion,cat_tipo.Descripcion " +
                                        " FROM Logistica.lo_Guia AS gui INNER JOIN " +
                                        " Logistica.lo_Empacadora AS emp ON gui.IdEmpacadora = emp.IdEmpacadora INNER JOIN " +
                                        " Logistica.lo_chofer AS chof ON gui.IdChofer = chof.IdChofer INNER JOIN " +
                                        " Logistica.lo_vehiculo AS veh ON gui.IdVehiculo = veh.IdVehiculo INNER JOIN " +
                                        " Logistica.lo_catalogo AS cat_ori ON gui.IdCatalogoOrigen = cat_ori.IdCatalogo INNER JOIN " +
                                        " Logistica.lo_catalogo AS cat_des ON gui.IdCatalogoDestino = cat_des.IdCatalogo INNER JOIN " +
                                        " dbo.fa_cliente ON emp.IdEmpresa = dbo.fa_cliente.IdEmpresa AND emp.IdCliente = dbo.fa_cliente.IdCliente INNER JOIN " +
                                        " dbo.tb_persona ON dbo.fa_cliente.IdPersona = dbo.tb_persona.IdPersona AND dbo.fa_cliente.IdPersona = dbo.tb_persona.IdPersona AND dbo.fa_cliente.IdPersona = dbo.tb_persona.IdPersona AND " +
                                        " dbo.fa_cliente.IdPersona = dbo.tb_persona.IdPersona AND dbo.fa_cliente.IdPersona = dbo.tb_persona.IdPersona INNER JOIN  " +
                                        " dbo.tb_empresa ON emp.IdEmpresa = dbo.tb_empresa.IdEmpresa INNER JOIN " +
                                        " Logistica.lo_catalogo AS cat_tipo ON gui.IdCatalogoTipoGuia = cat_tipo.IdCatalogo AND gui.IdCatalogoTipoGuia = cat_tipo.IdCatalogo " +
                                        " where Fecha between datefromparts(" + FechaIni.Year.ToString() + "," + FechaIni.Month.ToString() + "," + FechaIni.Day.ToString() + ") and datefromparts(" + FechaFin.Year.ToString() + "," + FechaFin.Month.ToString() + "," + FechaFin.Day.ToString() + ") and generado is null";
                    SqlCommand    cmd_cab = new SqlCommand(sqlcabFact, conexion);
                    SqlDataReader dtr_cab = cmd_cab.ExecuteReader();
                    while (dtr_cab.Read())
                    {
                        #region cabecera guia
                        decimal      IdGuia   = Convert.ToDecimal(dtr_cab.GetValue(0));
                        guiaRemision myObject = new guiaRemision();
                        myObject.version = "1.1.0";
                        myObject.id      = guiaRemisionID.comprobante;
                        infoTributaria info = new infoTributaria();
                        myObject.infoGuiaRemision = new guiaRemisionInfoGuiaRemision();
                        destinatario destinatario = new Info.class_sri.GuiaRemision.destinatario();

                        myObject.infoTributaria                 = info;
                        myObject.destinatarios                  = new guiaRemisionDestinatarios();
                        info.ambiente                           = "1";
                        myObject.infoTributaria.tipoEmision     = "1";
                        myObject.infoTributaria.razonSocial     = dtr_cab.GetValue(29).ToString();
                        myObject.infoTributaria.nombreComercial = dtr_cab.GetValue(29).ToString();
                        myObject.infoTributaria.ruc             = dtr_cab.GetValue(28).ToString();
                        myObject.infoTributaria.claveAcceso     = "0000000000000000000000000000000000000000000000000";
                        //*********************************************************************************
                        myObject.infoTributaria.codDoc                     = "06";
                        myObject.infoTributaria.estab                      = dtr_cab.GetValue(10).ToString();
                        myObject.infoTributaria.ptoEmi                     = dtr_cab.GetValue(11).ToString();
                        myObject.infoTributaria.secuencial                 = dtr_cab.GetValue(12).ToString();
                        myObject.infoTributaria.dirMatriz                  = dtr_cab.GetValue(30).ToString();
                        myObject.infoGuiaRemision.dirEstablecimiento       = dtr_cab.GetValue(30).ToString();
                        myObject.infoGuiaRemision.dirPartida               = dtr_cab.GetValue(7).ToString();
                        myObject.infoGuiaRemision.razonSocialTransportista = dtr_cab.GetValue(24).ToString();
                        myObject.infoGuiaRemision.rucTransportista         = dtr_cab.GetValue(23).ToString();
                        myObject.infoGuiaRemision.placa                    = dtr_cab.GetValue(11).ToString();
                        if (dtr_cab.GetValue(23).ToString().Length == 10)
                        {
                            myObject.infoGuiaRemision.tipoIdentificacionTransportista = "05";
                        }

                        if (dtr_cab.GetValue(23).ToString().Length == 13)
                        {
                            myObject.infoGuiaRemision.tipoIdentificacionTransportista = "04";
                        }

                        DateTime fecha = Convert.ToDateTime(dtr_cab.GetValue(5));
                        string   Fe    = fecha.Day.ToString().PadLeft(2, '0') + "/" + fecha.Month.ToString().PadLeft(2, '0') + "/" + fecha.Year.ToString();
                        myObject.infoGuiaRemision.fechaIniTransporte = string.Format(FormatoFechaSRI, Fe);
                        myObject.infoGuiaRemision.fechaFinTransporte = string.Format(FormatoFechaSRI, Fe);
                        //if (item.ContribuyenteEspecial != "")
                        //    myObject.infoGuiaRemision.contribuyenteEspecial = item.ContribuyenteEspecial;


                        myObject.destinatarios.destinatario = new List <destinatario>();

                        destinatario.identificacionDestinatario = dtr_cab.GetValue(25).ToString();
                        destinatario.razonSocialDestinatario    = dtr_cab.GetValue(27).ToString();
                        destinatario.dirDestinatario            = dtr_cab.GetValue(26).ToString();
                        destinatario.motivoTraslado             = dtr_cab.GetValue(31).ToString();
                        destinatario.codEstabDestino            = "001";
                        destinatario.ruta = "S/N";
                        myObject.destinatarios.destinatario.Add(destinatario);
                        #endregion

                        #region detalle guia
                        string sql_detalle = "SELECT Logistica.lo_GuiaDet.IdGuiaDet, Logistica.lo_GuiaDet.IdGuia, Logistica.lo_GuiaDet.IdRecurso, Logistica.lo_GuiaDet.Cantidad, Logistica.lo_recurso.NomRecurso, Logistica.lo_recurso.ControlaSerie, " +
                                             "Logistica.lo_recurso.ControlaKardex, Logistica.lo_recurso.CantidadPorDefecto " +
                                             "FROM Logistica.lo_GuiaDet INNER JOIN " +
                                             "Logistica.lo_recurso ON Logistica.lo_GuiaDet.IdRecurso = Logistica.lo_recurso.IdRecurso" +
                                             " where Logistica.lo_GuiaDet.IdGuia=" + IdGuia + "";

                        destinatario.detalles         = new destinatarioDetalles();
                        destinatario.detalles.detalle = new List <detalle>();
                        using (SqlConnection conexion2 = new SqlConnection(ConexionDBCliente))
                        {
                            conexion2.Open();
                            SqlCommand    cmd_det = new SqlCommand(sql_detalle, conexion2);
                            SqlDataReader dtr_det = cmd_det.ExecuteReader();
                            while (dtr_det.Read())
                            {
                                destinatario.detalles.detalle.Add(new detalle
                                {
                                    codigoAdicional = dtr_det.GetValue(2).ToString(),
                                    codigoInterno   = dtr_det.GetValue(2).ToString(),
                                    descripcion     = dtr_det.GetValue(4).ToString(),
                                    cantidad        = Convert.ToDecimal(dtr_det.GetValue(3).ToString()),
                                });
                            }
                        }

                        #endregion

                        lista.Add(myObject);
                        #region actaulizar a registro generado
                        string sqlUpdate = "update Logistica.lo_Guia set generado=1 where IdGuia=" + IdGuia + "";
                        using (SqlConnection conexion3 = new SqlConnection(ConexionDBCliente))
                        {
                            conexion3.Open();
                            SqlCommand    cmdupdate = new SqlCommand(sqlUpdate, conexion3);
                            SqlDataReader dtrupdate = cmdupdate.ExecuteReader();
                        }
                        #endregion
                    }
                }
                return(lista);
            }
            catch (Exception ex)
            {
                return(new List <guiaRemision>());
            }
        }
Beispiel #5
0
        List <guiaRemision> fx_GeneradorXML_IGuia.GetGuiaEfixed(DateTime FechaIni, DateTime FechaFin, string ConexionDBCliente, string OconEfirm, string FormatoFechaSRI, string formatoFechaDB)
        {
            DateTime Fi = Convert.ToDateTime(FechaIni.ToShortDateString());
            DateTime Ff = Convert.ToDateTime(FechaFin.ToShortDateString());
            string   sFi, sFf;

            sFi = string.Format(formatoFechaDB, Fi);
            sFf = string.Format(formatoFechaDB, Ff);


            try
            {
                List <guiaRemision> lista = new List <guiaRemision>();
                using (Entity_conexion_efixed context = new Entity_conexion_efixed())
                {
                    var guiaRemisions = context.vwfe_guia_remision.Where(v => v.gi_fecha >= Fi && v.gi_fecha <= Ff).ToList();
                    foreach (var item in guiaRemisions)
                    {
                        guiaRemision myObject = new guiaRemision();
                        myObject.version = "1.1.0";
                        myObject.id      = guiaRemisionID.comprobante;
                        infoTributaria info = new infoTributaria();
                        myObject.infoGuiaRemision = new guiaRemisionInfoGuiaRemision();
                        destinatario destinatario = new Info.class_sri.GuiaRemision.destinatario();

                        myObject.infoTributaria                 = info;
                        myObject.destinatarios                  = new guiaRemisionDestinatarios();
                        info.ambiente                           = "1";
                        myObject.infoTributaria.tipoEmision     = "1";
                        myObject.infoTributaria.razonSocial     = item.RazonSocial;
                        myObject.infoTributaria.nombreComercial = item.NombreComercial;
                        myObject.infoTributaria.ruc             = item.em_ruc;
                        myObject.infoTributaria.claveAcceso     = "0000000000000000000000000000000000000000000000000";
                        //*********************************************************************************
                        myObject.infoTributaria.codDoc                     = "06";
                        myObject.infoTributaria.estab                      = item.Serie1;
                        myObject.infoTributaria.ptoEmi                     = item.Serie2;
                        myObject.infoTributaria.secuencial                 = item.NumGuia_Preimpresa;
                        myObject.infoTributaria.dirMatriz                  = item.em_direccion;
                        myObject.infoGuiaRemision.dirEstablecimiento       = item.em_direccion;
                        myObject.infoGuiaRemision.dirPartida               = item.Direccion_Origen;
                        myObject.infoGuiaRemision.razonSocialTransportista = item.Nombre;
                        myObject.infoGuiaRemision.rucTransportista         = item.Cedula;
                        myObject.infoGuiaRemision.placa                    = item.placa;
                        if (item.Cedula.Length == 10)
                        {
                            myObject.infoGuiaRemision.tipoIdentificacionTransportista = "05";
                        }

                        if (item.Cedula.Length == 13)
                        {
                            myObject.infoGuiaRemision.tipoIdentificacionTransportista = "04";
                        }

                        myObject.infoGuiaRemision.fechaIniTransporte = string.Format("{0:dd/MM/yyyy}", item.gi_FechaInicioTraslado);
                        myObject.infoGuiaRemision.fechaFinTransporte = string.Format("{0:dd/MM/yyyy}", item.gi_FechaFinTraslado);
                        if (item.ContribuyenteEspecial != "")
                        {
                            myObject.infoGuiaRemision.contribuyenteEspecial = item.ContribuyenteEspecial;
                        }

                        var facturas_x_guias = context.vwfe_guia_remision_x_factura.Where(v => v.IdEmpresa == item.IdEmpresa && v.IdGuiaRemision == item.IdGuiaRemision).ToList();
                        myObject.destinatarios.destinatario = new List <destinatario>();

                        destinatario.identificacionDestinatario = item.pe_cedulaRuc;
                        destinatario.razonSocialDestinatario    = item.pe_nombreCompleto;
                        destinatario.dirDestinatario            = item.Direccion;
                        destinatario.motivoTraslado             = item.tr_Descripcion;
                        destinatario.codEstabDestino            = "001";
                        destinatario.ruta = item.ruta == "" ? "S/N" : item.ruta;
                        foreach (var item_fac in facturas_x_guias)
                        {
                            destinatario.codDocSustento = "01";
                            destinatario.numDocSustento = item.vt_serie1 + "-" + item_fac.vt_serie2 + "-" + item_fac.vt_NumFactura;

                            if (item_fac.vt_autorizacion != null)
                            {
                                if (item_fac.vt_autorizacion.Length > 10)
                                {
                                    destinatario.numAutDocSustento = item_fac.vt_autorizacion.Substring(0, 10);
                                }
                            }

                            destinatario.fechaEmisionDocSustento = string.Format("{0:dd/MM/yyyy}", item.gi_fecha);
                        }
                        myObject.destinatarios.destinatario.Add(destinatario);
                        var guia_detalle = context.vwfe_guia_remision_detalle.Where(v => v.IdEmpresa == item.IdEmpresa && v.IdGuiaRemision == item.IdGuiaRemision).ToList();
                        destinatario.detalles         = new destinatarioDetalles();
                        destinatario.detalles.detalle = new List <detalle>();
                        foreach (var item_det in guia_detalle)
                        {
                            destinatario.detalles.detalle.Add(new detalle
                            {
                                codigoAdicional = item_det.pr_codigo,
                                codigoInterno   = item_det.pr_codigo,
                                descripcion     = item_det.pr_descripcion,
                                cantidad        = Convert.ToDecimal(item_det.gi_cantidad),
                            });
                        }
                        // campos adicionales

                        fx_GeneradorXML_ValidarEmail_Info datosAdc = new fx_GeneradorXML_ValidarEmail_Info();
                        if (item.Correo != null && item.Correo != "")
                        {
                            if (myObject.infoAdicional == null)
                            {
                                myObject.infoAdicional = new List <guiaRemisionCampoAdicional>();
                            }

                            guiaRemisionCampoAdicional compoadicional = new guiaRemisionCampoAdicional();
                            compoadicional.nombre = "MAIL";
                            compoadicional.Value  = item.Correo;
                            myObject.infoAdicional.Add(compoadicional);
                        }
                        if (item.Telefono != null && item.Telefono != "")
                        {
                            if (myObject.infoAdicional == null)
                            {
                                myObject.infoAdicional = new List <guiaRemisionCampoAdicional>();
                            }

                            guiaRemisionCampoAdicional compoadicional = new guiaRemisionCampoAdicional();
                            compoadicional.nombre = "TELEFONO";
                            compoadicional.Value  = item.Telefono;
                            myObject.infoAdicional.Add(compoadicional);
                        }
                        lista.Add(myObject);
                    }
                }
                return(lista);
            }
            catch (Exception ex)
            {
                return(new List <guiaRemision>());
            }
        }
Beispiel #6
0
        public bool GenerarXML(int IdEmpresa, int IdSucursal, int IdGuia)
        {
            try
            {
                fa_parametro_info info_parametro = new fa_parametro_info();
                fa_parametro_Bus  bus_parametro  = new fa_parametro_Bus();
                info_parametro = bus_parametro.Get_Info_parametro(IdEmpresa);
                tb_Empresa_Info info_empresa = new tb_Empresa_Info();
                tb_Empresa_Bus  bus_empresa  = new tb_Empresa_Bus();
                info_empresa = bus_empresa.Get_Info_Empresa(IdEmpresa);



                StreamWriter          myWriter;
                fa_guia_remision_Info info_guia = new fa_guia_remision_Info();
                info_guia = Gat_info_Guia(IdEmpresa, IdSucursal, 1, IdGuia);

                // cabecera del xml
                guiaRemision myObject = new guiaRemision();
                myObject.id                                        = guiaRemisionID.comprobante;
                myObject.version                                   = "1.1.0";
                myObject.id                                        = guiaRemisionID.comprobante;
                myObject.infoTributaria                            = new Info.class_sri.FacturaV2.infoTributaria();
                myObject.infoGuiaRemision                          = new guiaRemisionInfoGuiaRemision();
                myObject.infoTributaria.ambiente                   = "1";
                myObject.infoTributaria.tipoEmision                = "1";
                myObject.infoTributaria.razonSocial                = info_guia.RazonSocial;
                myObject.infoTributaria.nombreComercial            = info_guia.NombreComercial;
                myObject.infoTributaria.ruc                        = info_guia.em_ruc;
                myObject.infoTributaria.claveAcceso                = "0000000000000000000000000000000000000000000000000";
                myObject.infoTributaria.codDoc                     = "06";
                myObject.infoTributaria.estab                      = info_guia.Serie1;
                myObject.infoTributaria.ptoEmi                     = info_guia.Serie2;
                myObject.infoTributaria.secuencial                 = info_guia.NumGuia_Preimpresa;
                myObject.infoTributaria.dirMatriz                  = info_guia.Direccion_Origen;
                myObject.infoGuiaRemision.dirEstablecimiento       = info_guia.Direccion_Origen;
                myObject.infoGuiaRemision.dirPartida               = info_guia.Direccion_Destino;
                myObject.infoGuiaRemision.razonSocialTransportista = info_guia.nom_Transportista;
                if (info_guia.Cedula.Length == 10)
                {
                    myObject.infoGuiaRemision.tipoIdentificacionTransportista = "05";
                }
                else
                {
                    myObject.infoGuiaRemision.tipoIdentificacionTransportista = "04";
                }
                myObject.infoGuiaRemision.rucTransportista      = info_guia.Cedula;
                myObject.infoGuiaRemision.obligadoContabilidad  = "SI";
                myObject.infoGuiaRemision.contribuyenteEspecial = info_empresa.ContribuyenteEspecial;
                myObject.infoGuiaRemision.fechaIniTransporte    = info_guia.gi_FecIniTraslado.ToString().Substring(0, 10);
                myObject.infoGuiaRemision.fechaFinTransporte    = info_guia.gi_FecFinTraslado.ToString().Substring(0, 10);
                myObject.infoGuiaRemision.placa = info_guia.placa;

                // datos del destinatario
                myObject.destinatarios = new guiaRemisionDestinatarios();
                myObject.destinatarios.destinatario = new List <destinatario>();
                destinatario destinatario_ = new destinatario();
                destinatario_.detalles                   = new destinatarioDetalles();
                destinatario_.detalles.detalle           = new List <detalle>();
                destinatario_.identificacionDestinatario = info_guia.pe_cedulaRuc;
                destinatario_.razonSocialDestinatario    = info_guia.pe_nombreCompleto;
                destinatario_.dirDestinatario            = info_guia.Direccion_Destino;
                destinatario_.motivoTraslado             = info_guia.gi_Observacion;

                // datos si la guia tiene factura

                //destinatario_.codEstabDestino = "";
                //destinatario_.ruta = "";
                //destinatario_.codDocSustento = "";
                //destinatario_.numDocSustento = "";
                //destinatario_.numAutDocSustento = "";
                //destinatario_.fechaEmisionDocSustento = "";
                //destinatario_.numAutDocSustento = "";

                myObject.destinatarios.destinatario.Add(destinatario_);

                foreach (var item in info_guia.ListaDetalle)
                {
                    detalle det = new detalle();
                    det.codigoInterno   = item.pr_codigo;
                    det.codigoAdicional = item.pr_codigo;
                    det.descripcion     = item.pr_descripcion;
                    det.cantidad        = (decimal)item.gi_cantidad;
                    det.cantidad        = Convert.ToDecimal(string.Format("{0:0.0000}", item.gi_cantidad));
                    destinatario_.detalles.detalle.Add(det);
                }

                myObject.destinatarios.destinatario.Add(destinatario_);



                // SEREALIZO EL XML
                string sIdCbteRet = "";

                info_parametro.pa_ruta_descarga_xml_fac_elct = @"C:\Users\Administrador.Desarrollo-PC\Desktop\xml\";


                sIdCbteRet = myObject.infoTributaria.razonSocial.Substring(0, 3) + "-GUI-" + myObject.infoTributaria.estab + "-" + myObject.infoTributaria.ptoEmi + "-" + myObject.infoTributaria.secuencial;
                XmlSerializerNamespaces NamespaceObject = new XmlSerializerNamespaces();
                NamespaceObject.Add("", "");
                XmlSerializer mySerializer = new XmlSerializer(typeof(guiaRemision));
                myWriter = new StreamWriter(info_parametro.pa_ruta_descarga_xml_fac_elct + sIdCbteRet + ".xml");
                mySerializer.Serialize(myWriter, myObject, NamespaceObject);
                myWriter.Close();



                return(true);
            }
            catch (Exception ex)
            {
                Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message);
                throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "Get_List_guia_remision", ex.Message), ex)
                      {
                          EntityType = typeof(fa_guia_remision_graf_Bus)
                      };
            }
        }
        private List <guiaRemision> Get_Xml_Guia_x_Traspaso(int IdEmpresa, decimal IdGuia)
        {
            try
            {
                tb_Bodega_Bus  Bus_Bodega  = new tb_Bodega_Bus();
                tb_Bodega_Info Info_Bodega = new tb_Bodega_Info();

                in_Guia_x_traspaso_bodega_Info Info_Guia = new in_Guia_x_traspaso_bodega_Info();
                Info_Guia = Get_Info_x_in_Guia(IdEmpresa, IdGuia);

                Info_Bodega = Bus_Bodega.Get_Info_Bodega(IdEmpresa, Convert.ToInt32(Info_Guia.IdSucursal_Partida), 1);

                List <guiaRemision>       listaaux      = new List <guiaRemision>();
                List <guiaRemision>       lista         = new List <guiaRemision>();
                guiaRemisionDestinatarios destinatarios = new guiaRemisionDestinatarios();
                guiaRemision myObject = new guiaRemision();


                myObject.destinatarios     = destinatarios;
                destinatarios.destinatario = new List <destinatario>();
                destinatario         destinatari     = new destinatario();
                destinatarioDetalles destinatariodet = new destinatarioDetalles();
                destinatari.detalles         = destinatariodet;
                destinatari.detalles.detalle = new List <detalle>();

                string correo = "";
                string format = "dd/MM/yyyy";



                myObject.id      = guiaRemisionID.comprobante;
                myObject.version = "1.1.0";
                myObject.id      = guiaRemisionID.comprobante;
                infoTributaria info = new infoTributaria();
                myObject.infoGuiaRemision = new guiaRemisionInfoGuiaRemision();
                //información tributaria
                myObject.infoTributaria             = info;
                info.ambiente                       = "1";
                myObject.infoTributaria.tipoEmision = "1";

                myObject.infoTributaria.razonSocial     = string.IsNullOrEmpty(Info_Guia.razon_social_empresa)?"": Info_Guia.razon_social_empresa.Trim();
                myObject.infoTributaria.nombreComercial = string.IsNullOrEmpty(Info_Guia.nom_comercial_empresa)?"": Info_Guia.nom_comercial_empresa.Trim();
                myObject.infoTributaria.ruc             = Info_Guia.ruc_empresa;

                myObject.infoTributaria.claveAcceso = "0000000000000000000000000000000000000000000000000";
                myObject.infoTributaria.codDoc      = "06";
                myObject.infoTributaria.estab       = Convert.ToString(Info_Guia.IdEstablecimiento);
                myObject.infoTributaria.ptoEmi      = Info_Guia.IdPuntoEmision;
                myObject.infoTributaria.secuencial  = Info_Guia.NumDocumento_Guia;

                myObject.infoTributaria.dirMatriz = string.IsNullOrEmpty(Info_Guia.direc_empresa)?"": Info_Guia.direc_empresa.Trim();
                //datos de la guía de remisión
                myObject.infoGuiaRemision.dirEstablecimiento = string.IsNullOrEmpty(Info_Guia.Direc_sucu_Partida) ? "" : Info_Guia.Direc_sucu_Partida.Trim();
                myObject.infoGuiaRemision.dirPartida         = string.IsNullOrEmpty(Info_Guia.Direc_sucu_Partida) ? "" : Info_Guia.Direc_sucu_Partida.Trim();

                myObject.infoGuiaRemision.razonSocialTransportista        = string.IsNullOrEmpty(Info_Guia.nom_transportista) ? "" : Info_Guia.nom_transportista.Trim();
                myObject.infoGuiaRemision.tipoIdentificacionTransportista = "05";
                myObject.infoGuiaRemision.rucTransportista = Info_Guia.ced_transportista;
                myObject.infoGuiaRemision.placa            = Info_Guia.Placa;


                //        myObject.infoGuiaRemision.obligadoContabilidad = (Info_Guia.obligado_conta_empresa == "SI" || Info_Guia.obligado_conta_empresa=="S") ?"S":"N";
                //      myObject.infoGuiaRemision.contribuyenteEspecial = Info_Guia.contrib_especial_empresa;


                myObject.infoGuiaRemision.fechaIniTransporte = Convert.ToDateTime(Info_Guia.Fecha_Traslado).ToString(format);
                myObject.infoGuiaRemision.fechaFinTransporte = Convert.ToDateTime(Info_Guia.Fecha_llegada).ToString(format);


                //datos del destinatario
                destinatari.identificacionDestinatario = Info_Guia.IdentificacionDestinatario;
                destinatari.razonSocialDestinatario    = string.IsNullOrEmpty(Info_Guia.NombreDestinatario) ? "" : Info_Guia.NombreDestinatario.Trim();
                destinatari.dirDestinatario            = string.IsNullOrEmpty(Info_Guia.Direc_sucu_Llegada) ? "" : Info_Guia.Direc_sucu_Llegada.Trim();
                destinatari.motivoTraslado             = string.IsNullOrEmpty(Info_Guia.nom_Motivo_Traslado)?"": Info_Guia.nom_Motivo_Traslado.Trim();
                //destinatari.ruta = "";

                //destinatari.detalles.detalle
                //myObject.infoGuiaRemision
                //para extraer el detalle de la hoja, multiples lineas de producto

                in_Guia_x_traspaso_bodega_det_Bus         BusDetalle_Guia      = new in_Guia_x_traspaso_bodega_det_Bus();
                List <in_Guia_x_traspaso_bodega_det_Info> ListInfoDetalle_Guia = new List <in_Guia_x_traspaso_bodega_det_Info>();
                ListInfoDetalle_Guia = BusDetalle_Guia.Get_List_Guia_x_traspaso_bodega_x_OC_det(IdEmpresa, IdGuia);

                //if (ListInfoDetalle_Guia.Count() > 0)
                //{
                foreach (var item in ListInfoDetalle_Guia)
                {
                    detalle det = new detalle();
                    det.codigoInterno   = item.IdProducto.ToString();
                    det.codigoAdicional = item.pr_codigo;
                    det.descripcion     = item.nom_producto.Trim() + (item.obs_OCompra == null ? "" : item.obs_OCompra.Trim()) + "(OC#" + item.IdOrdenCompra + ")";
                    det.cantidad        = Convert.ToDecimal(item.Cantidad_enviar);
                    destinatari.detalles.detalle.Add(det);
                }
                //}
                //else
                //{

                in_Guia_x_traspaso_bodega_det_sin_oc_Bus         BusDetalle_Guia_SOC      = new in_Guia_x_traspaso_bodega_det_sin_oc_Bus();
                List <in_Guia_x_traspaso_bodega_det_sin_oc_Info> ListInfoDetalle_Guia_SOC = new List <in_Guia_x_traspaso_bodega_det_sin_oc_Info>();
                ListInfoDetalle_Guia_SOC = BusDetalle_Guia_SOC.Get_List_Guia_x_traspaso_bodega_det_sin_oc(IdEmpresa, IdGuia);

                foreach (var item in ListInfoDetalle_Guia_SOC)
                {
                    detalle det = new detalle();
                    det.codigoInterno   = (item.IdProducto == null) ? item.Num_Fact : Convert.ToDecimal(item.IdProducto).ToString();
                    det.codigoAdicional = item.Num_Fact;
                    det.descripcion     = item.nom_producto.Trim() + (item.observacion == null ? "" : item.observacion.Trim()) + "(Prove:" + item.nom_proveedor + ")";
                    det.cantidad        = Convert.ToDecimal(item.Cantidad_enviar);
                    destinatari.detalles.detalle.Add(det);
                }
                //}



                //campos adicionales guía de remisión
                guiaRemisionCampoAdicional compoadicional = new guiaRemisionCampoAdicional();
                Cl_ValidarEmail_Info       datosAdc       = new Cl_ValidarEmail_Info();
                if (datosAdc.email_bien_escrito(correo) == true)
                {
                    compoadicional.nombre  = "MAIL";
                    compoadicional.Value   = correo;
                    myObject.infoAdicional = new List <guiaRemisionCampoAdicional>();
                    myObject.infoAdicional.Add(compoadicional);
                }
                //punto de llegada
                if (Info_Guia.Direc_sucu_Llegada != "")                                                      //(dtrcabGuiaRe.IsDBNull(27) == false)
                {
                    compoadicional         = new guiaRemisionCampoAdicional();
                    compoadicional.nombre  = "DESTINO";
                    compoadicional.Value   = string.IsNullOrEmpty(Info_Guia.Direc_sucu_Llegada)?"": Info_Guia.Direc_sucu_Llegada;
                    myObject.infoAdicional = new List <guiaRemisionCampoAdicional>();
                    myObject.infoAdicional.Add(compoadicional);
                }

                destinatarios.destinatario.Add(destinatari);
                lista.Add(myObject);

                return(lista);;
            }
            catch (Exception ex)
            {
                Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message);
                throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "ObtenerParaGuiaRemision", ex.Message), ex)
                      {
                          EntityType = typeof(in_Guia_x_traspaso_bodega_Bus)
                      };
            }
        }
        public List <Info.class_sri.GuiaRemision.guiaRemision> GenerarXmlGuiaRemision(List <vwprd_Guia_Remision_Electronica_Info> LstGuia_Remision_Electronica_Info)
        {
            try
            {
                char pad_Cero = '0';


                List <guiaRemision>       listaaux      = new List <guiaRemision>();
                List <guiaRemision>       lista         = new List <guiaRemision>();
                guiaRemisionDestinatarios destinatarios = new guiaRemisionDestinatarios();
                guiaRemision myObject = new guiaRemision();


                myObject.destinatarios     = destinatarios;
                destinatarios.destinatario = new List <destinatario>();
                destinatario         destinatari     = new destinatario();
                destinatarioDetalles destinatariodet = new destinatarioDetalles();
                destinatari.detalles         = destinatariodet;
                destinatari.detalles.detalle = new List <detalle>();
                int    cont   = 0;
                string correo = "";

                foreach (var item in LstGuia_Remision_Electronica_Info)
                {
                    if (cont == 0)
                    {
                        cont             = 1;
                        myObject.id      = guiaRemisionID.comprobante;
                        myObject.version = "1.1.0";
                        myObject.id      = guiaRemisionID.comprobante;
                        infoTributaria info = new infoTributaria();
                        myObject.infoGuiaRemision = new guiaRemisionInfoGuiaRemision();
                        // myObject.destinatarios = new guiaRemisionDestinatarios();
                        //información tributaria
                        myObject.infoTributaria                 = info;
                        info.ambiente                           = "1";
                        myObject.infoTributaria.tipoEmision     = "1";
                        myObject.infoTributaria.razonSocial     = item.RazonSocial;
                        myObject.infoTributaria.nombreComercial = item.NombreComercial;
                        myObject.infoTributaria.ruc             = item.em_ruc;
                        myObject.infoTributaria.claveAcceso     = "0000000000000000000000000000000000000000000000000";
                        myObject.infoTributaria.codDoc          = item.CodDocumentoTipo;
                        myObject.infoTributaria.estab           = Convert.ToString(item.IdSucursal).PadLeft(3, pad_Cero);       //dtrcabGuiaRe.GetString(1).Substring(0, 3);//001 x tener una sola sucursale -  coger codigo tb_sucursal

                        myObject.infoTributaria.ptoEmi     = Convert.ToString(item.IdSucursal).PadLeft(3, pad_Cero);            //dtrcabGuiaRe.GetString(1).Substring(3, 3);//001 x tener una sola punto de venta o caja
                        myObject.infoTributaria.secuencial = Convert.ToString(item.IdGuiaRemision).PadLeft(9, pad_Cero);        // dtrcabGuiaRe.GetString(1).Substring(6, 9);

                        myObject.infoTributaria.dirMatriz = item.em_direccion;                                                  //dtrcabGuiaRe.GetString(6);//tb_empresa
                        //datos de la guía de remisión
                        myObject.infoGuiaRemision.dirEstablecimiento              = item.Su_Direccion;                          //dtrcabGuiaRe.GetString(6);//tb_empresa
                        myObject.infoGuiaRemision.dirPartida                      = item.Direccion_Origen;                      //dtrcabGuiaRe.GetString(7);
                        myObject.infoGuiaRemision.razonSocialTransportista        = item.Nombre_Transportista;                  //dtrcabGuiaRe.GetString(8);//tb_persona
                        myObject.infoGuiaRemision.tipoIdentificacionTransportista = "05";                                       //dtrcabGuiaRe.GetString(9);//ficha sri que tipo de ID-CC pendiente
                        myObject.infoGuiaRemision.rucTransportista                = item.Cedula_Transportista;                  //dtrcabGuiaRe.GetString(10);//tb_persona
                        myObject.infoGuiaRemision.obligadoContabilidad            = item.ObligadoAllevarConta;                  //obliconta;//tb_empresa - conversion S por SI o N por NO
                        myObject.infoGuiaRemision.contribuyenteEspecial           = item.ContribuyenteEspecial;                 //contspecia;
                        myObject.infoGuiaRemision.fechaIniTransporte              = Convert.ToString(item.gi_FechaIniTraslado); //dtrcabGuiaRe.GetString(11);
                        myObject.infoGuiaRemision.fechaFinTransporte              = Convert.ToString(item.gi_FechaFinTraslado); //dtrcabGuiaRe.GetString(12);
                        myObject.infoGuiaRemision.placa = item.placa;                                                           //dtrcabGuiaRe.GetString(13);
                        //datos del destinatario
                        destinatari.identificacionDestinatario = item.pe_cedulaRuc;                                             //dtrcabGuiaRe.GetString(15);
                        destinatari.razonSocialDestinatario    = item.pe_razonSocial;                                           //dtrcabGuiaRe.GetString(16);
                        destinatari.dirDestinatario            = item.pe_direccion;                                             //dtrcabGuiaRe.GetString(17);
                        destinatari.motivoTraslado             = item.descripcion_motivo_traslado;                              //dtrcabGuiaRe.GetString(18);
                        destinatari.ruta = item.ruta;                                                                           //dtrcabGuiaRe.GetString(19);
                        // si la guia de remision tiene factura
                    }

                    //para extraer el detalle de la hoja, multiples lineas de producto
                    detalle det = new detalle();
                    det.codigoInterno   = item.pr_codigo;                                               //dtrcabGuiaRe.GetString(21);
                    det.codigoAdicional = item.pr_descripcion;                                          //dtrcabGuiaRe.GetString(22);
                    det.descripcion     = item.pr_descripcion_2;                                        //dtrcabGuiaRe.GetString(23);
                    det.cantidad        = Convert.ToDecimal(item.gi_cantidad);                          //Convert.ToDecimal(dtrcabGuiaRe.GetDouble(24));
                    // DETALLES ADICIONALES
                    det.detallesAdicionales = new List <detalleDetAdicional>();
                    detalleDetAdicional DtelleAd = new detalleDetAdicional();
                    DtelleAd.nombre = item.unidad_medida_consumo;                                      //dtrcabGuiaRe.GetString(25);
                    DtelleAd.valor  = item.unidad_medida_consumo;                                      //dtrcabGuiaRe.GetString(25);
                    det.detallesAdicionales.Add(DtelleAd);
                    destinatari.detalles.detalle.Add(det);



                    if (item.pe_correo != null)
                    {
                        correo = item.pe_correo;                                                        //dtrcabGuiaRe.GetString(26);
                    }
                    //campos adicionales guía de remisión
                    guiaRemisionCampoAdicional compoadicional = new guiaRemisionCampoAdicional();
                    Cl_ValidarEmail_Info       datosAdc       = new Cl_ValidarEmail_Info();
                    if (datosAdc.email_bien_escrito(correo) == true)
                    {
                        compoadicional.nombre  = "MAIL";
                        compoadicional.Value   = correo;
                        myObject.infoAdicional = new List <guiaRemisionCampoAdicional>();
                        myObject.infoAdicional.Add(compoadicional);
                    }
                    //punto de llegada
                    if (item.Direccion_Destino != "")                                                   //(dtrcabGuiaRe.IsDBNull(27) == false)
                    {
                        compoadicional         = new guiaRemisionCampoAdicional();
                        compoadicional.nombre  = "DESTINO";
                        compoadicional.Value   = item.Direccion_Destino;
                        myObject.infoAdicional = new List <guiaRemisionCampoAdicional>();
                        myObject.infoAdicional.Add(compoadicional);
                    }
                    //Obra de referencia
                    if (item.descripcion_obra != "")                                                    //(dtrcabGuiaRe.IsDBNull(28) == false)
                    {
                        compoadicional         = new guiaRemisionCampoAdicional();
                        compoadicional.nombre  = "OBRA";
                        compoadicional.Value   = item.descripcion_obra;                                 //dtrcabGuiaRe.GetString(28);
                        myObject.infoAdicional = new List <guiaRemisionCampoAdicional>();
                        myObject.infoAdicional.Add(compoadicional);
                    }


                    destinatarios.destinatario.Add(destinatari);
                    lista.Add(myObject);
                }



                return(lista);;
            }
            catch (Exception ex)
            {
                Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message);
                throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "ObtenerParaGuiaRemision", ex.Message), ex)
                      {
                          EntityType = typeof(fa_guia_remision_Bus)
                      };
            }
        }