Ejemplo n.º 1
0
        public void EnviarData()
        {
            var r01 = Sistema.MyData2.Servidor_PrepararData();

            if (r01.Result == OOB.Enumerados.EnumResult.isError)
            {
                Helpers.Msg.Error(r01.Mensaje);
                return;
            }

            if (r01.Entidad != null)
            {
                if (r01.Entidad.Jornadas != null)
                {
                    if (r01.Entidad.Jornadas.Count > 0)
                    {
                        var ficha = new OOB.LibVenta.PosOffline.Servidor.EnviarData.Ficha(r01.Entidad);
                        var r02   = Sistema.MyData2.Servidor_EnviarData(ficha);
                        if (r02.Result == OOB.Enumerados.EnumResult.isError)
                        {
                            Helpers.Msg.Error(r02.Mensaje);
                            return;
                        }
                        Helpers.Msg.AgregarOk();
                    }
                }
            }
        }
        public OOB.Resultado Servidor_EnviarData(OOB.LibVenta.PosOffline.Servidor.EnviarData.Ficha ficha)
        {
            var result = new OOB.Resultado();

            var fichaDTO = new DtoLibPosOffLine.Servidor.EnviarData.Ficha()
            {
                Jornadas = ficha.Jornadas.Select(s =>
                {
                    var nr = new DtoLibPosOffLine.Servidor.EnviarData.Jornada()
                    {
                        Id = s.Id,
                        EstatusTransmitida = s.EstatusTransmitida,
                    };
                    return(nr);
                }).ToList(),


                Series = ficha.Series.Select(s =>
                {
                    var nr = new DtoLibPosOffLine.Servidor.EnviarData.Serie()
                    {
                        Auto        = s.Auto,
                        Correlativo = s.Correlativo,
                    };
                    return(nr);
                }).ToList(),
            };

            var Fechas      = new List <DateTime>();
            var Movimientos = new List <DtoLibPosOffLine.Servidor.EnviarData.Movimiento>();

            foreach (var mv in ficha.Movimientos)
            {
                var lf = mv.Documentos.GroupBy(g => g.Fecha).Select(r => new { r.Key }).ToList();
                foreach (var r in lf)
                {
                    Fechas.Add(r.Key.Date);
                }
                ;

                var _prefijo = mv.Prefijo;

                var c       = mv.Cierre;
                var _cierre = new DtoLibPosOffLine.Servidor.EnviarData.MovCierre()
                {
                    autoUsuario      = c.autoUsuario,
                    codigoUsuario    = c.codigoUsuario,
                    usuario          = c.usuario,
                    fecha            = c.fecha,
                    hora             = c.hora,
                    diferencia       = c.diferencia,
                    efectivo         = c.efectivo,
                    divisa           = c.divisa,
                    debito           = c.debito,
                    otros            = c.otros,
                    firma            = c.firma,
                    devolucion       = c.devolucion,
                    subTotal         = c.subTotal,
                    total            = c.total,
                    mfectivo         = c.mfectivo,
                    mdivisa          = c.mdivisa,
                    mdebito          = c.mdebito,
                    motros           = c.motros,
                    mfirma           = c.mfirma,
                    msubtotal        = c.msubtotal,
                    mtotal           = c.mtotal,
                    cntDivisa        = (int)c.cntDivisa,
                    cntDivisaUsuario = (int)c.cntDivisaUsuario,
                    cntDoc           = c.cntDoc,
                    cntDocFac        = c.cntDocFac,
                    cntDocNcr        = c.cntDocNcr,
                    montoFac         = c.montoFac,
                    montoNcr         = c.montoNcr,
                };

                var Documentos = mv.Documentos.Select(d =>
                {
                    DtoLibPosOffLine.Servidor.EnviarData.CxCPago pago = null;
                    if (d.DocPago != null)
                    {
                        pago = new DtoLibPosOffLine.Servidor.EnviarData.CxCPago();

                        var p     = d.DocPago.Pago;
                        pago.Pago = new DtoLibPosOffLine.Servidor.EnviarData.CxC()
                        {
                            Acumulado        = p.Acumulado,
                            Agencia          = p.Agencia,
                            AutoAgencia      = p.AutoAgencia,
                            AutoCliente      = p.AutoCliente,
                            AutoDocumento    = p.AutoDocumento,
                            AutoVendedor     = p.AutoVendedor,
                            Castigop         = p.Castigop,
                            CCobranza        = p.CCobranza,
                            CCobranzap       = p.CCobranzap,
                            CDepartamento    = p.CDepartamento,
                            CiRif            = p.CiRif,
                            Cliente          = p.Cliente,
                            CodigoCliente    = p.CodigoCliente,
                            CVentas          = p.CVentas,
                            CVentasp         = p.CVentasp,
                            Dias             = p.Dias,
                            Documento        = p.Documento,
                            EstatusAnulado   = p.EstatusAnulado,
                            EstatusCancelado = p.EstatusCancelado,
                            Fecha            = p.Fecha,
                            FechaVencimiento = p.FechaVencimiento,
                            Importe          = p.Importe,
                            ImporteNeto      = p.ImporteNeto,
                            Nota             = p.Nota,
                            Numero           = p.Numero,
                            Resta            = p.Resta,
                            Serie            = p.Serie,
                            Signo            = p.Signo,
                            TipoDocumento    = p.TipoDocumento,
                            FactorCambio     = p.FactorCambio,
                            ImporteDivisa    = p.ImporteDivisa,
                        };

                        var r       = d.DocPago.Recibo;
                        pago.Recibo = new DtoLibPosOffLine.Servidor.EnviarData.CxCRecibo()
                        {
                            Fecha          = r.Fecha,
                            AutoUsuario    = r.AutoUsuario,
                            Importe        = r.Importe,
                            Usuario        = r.Usuario,
                            MontoRecibido  = r.MontoRecibido,
                            Cobrador       = r.Cobrador,
                            AutoCliente    = r.AutoCliente,
                            Cliente        = r.Cliente,
                            CiRif          = r.CiRif,
                            Codigo         = r.Codigo,
                            EstatusAnulado = r.EstatusAnulado,
                            Direccion      = r.Direccion,
                            Telefono       = r.Telefono,
                            AutoCobrador   = r.AutoCobrador,
                            Anticipos      = r.Anticipos,
                            Cambio         = r.Cambio,
                            Nota           = r.Nota,
                            CodigoCobrador = r.CodigoCobrador,
                            AutoCxC        = r.AutoCxC,
                            Retenciones    = r.Retenciones,
                            Descuentos     = r.Descuentos,
                            Hora           = r.Hora,
                            Cierre         = r.Cierre,
                            FactorCambio   = r.FactorCambio,
                            ImporteDivisa  = r.ImporteDivisa,
                        };

                        var dd         = d.DocPago.Documento;
                        pago.Documento = new DtoLibPosOffLine.Servidor.EnviarData.CxCDocumento()
                        {
                            Id             = dd.Id,
                            Fecha          = dd.Fecha,
                            TipoDocumento  = dd.TipoDocumento,
                            Documento      = dd.Documento,
                            Importe        = dd.Importe,
                            Operacion      = dd.Operacion,
                            FechaRecepcion = dd.FechaRecepcion,
                            Dias           = dd.Dias,
                            CastigoP       = dd.CastigoP,
                            ComisionP      = dd.ComisionP,
                        };

                        pago.MetodoPago = d.DocPago.MediosPago.Select(mp =>
                        {
                            var nmp = new DtoLibPosOffLine.Servidor.EnviarData.CxCMetodoPago()
                            {
                                AutoMedioPago  = mp.AutoMedioPago,
                                AutoAgencia    = mp.AutoAgencia,
                                Medio          = mp.Medio,
                                Codigo         = mp.Codigo,
                                MontoRecibido  = mp.MontoRecibido,
                                Fecha          = mp.Fecha,
                                EstatusAnulado = mp.EstatusAnulado,
                                Numero         = mp.Numero,
                                Agencia        = mp.Agencia,
                                AutoUsuario    = mp.AutoUsuario,
                                Lote           = mp.Lote,
                                Referencia     = mp.Referencia,
                                AutoCobrador   = mp.AutoCobrador,
                                Cierre         = mp.Cierre,
                                FechaAgencia   = mp.FechaAgencia,
                            };
                            return(nmp);
                        }).ToList();
                    }


                    //SE CREA EL DOCUMENTO
                    var nr = new DtoLibPosOffLine.Servidor.EnviarData.Documento()
                    {
                        AnoRelacion              = d.AnoRelacion,
                        AnticipoIva              = d.AnticipoIva,
                        Aplica                   = d.Aplica,
                        AutoCliente              = d.AutoCliente,
                        AutoCxC                  = d.AutoCxC,
                        AutoRecibo               = d.AutoRecibo,
                        AutoRemision             = d.AutoRemision,
                        AutoTransporte           = d.AutoTransporte,
                        AutoUsuario              = d.AutoUsuario,
                        AutoVendedor             = d.AutoVendedor,
                        Base1                    = d.Base1,
                        Base2                    = d.Base2,
                        Base3                    = d.Base3,
                        Cambio                   = d.Cambio,
                        Cargos                   = d.Cargos,
                        Cargosp                  = d.Cargosp,
                        DenominacionFiscal       = d.DenominacionFiscal,
                        CiBeneficiario           = d.CiBeneficiario,
                        Cierre                   = d.Cierre,
                        CiRif                    = d.CiRif,
                        CiTitular                = d.CiTitular,
                        Clave                    = d.Clave,
                        CodigoCliente            = d.CodigoCliente,
                        CodigoSucursal           = d.CodigoSucursal,
                        CodigoTransporte         = d.CodigoTransporte,
                        CodigoUsuario            = d.CodigoUsuario,
                        CodigoVendedor           = d.CodigoVendedor,
                        Columna                  = d.Columna,
                        ComprobanteRetencion     = d.ComprobanteRetencion,
                        ComprobanteRetencionIslr = d.ComprobanteRetencionIslr,
                        CondicionPago            = d.CondicionPago,
                        Control                  = d.Control,
                        Costo                    = d.Costo,
                        Descuento1               = d.Descuento1,
                        Descuento1p              = d.Descuento1p,
                        Descuento2               = d.Descuento2,
                        Descuento2p              = d.Descuento2p,
                        Despachado               = d.Despachado,
                        Dias                  = d.Dias,
                        DiasValidez           = d.DiasValidez,
                        DirDespacho           = d.DirDespacho,
                        DirFiscal             = d.DirFiscal,
                        DocumentoNombre       = d.DocumentoNombre,
                        DocumentoNro          = d.DocumentoNro,
                        DocumentoRemision     = d.DocumentoRemision,
                        DocumentoTipo         = d.DocumentoTipo,
                        Estacion              = d.Estacion,
                        EstatusAnulado        = d.EstatusAnulado,
                        EstatusCierreContable = d.EstatusCierreContable,
                        EstatusValidado       = d.EstatusValidado,
                        Exento                = d.Exento,
                        Expendiente           = d.Expendiente,
                        FactorCambio          = d.FactorCambio,
                        Fecha                 = d.Fecha,
                        FechaPedido           = d.FechaPedido,
                        FechaRegistro         = d.FechaRegistro,
                        FechaRetencion        = d.FechaRetencion,
                        FechaVencimiento      = d.FechaVencimiento,
                        Hora                  = d.Hora,
                        Impuesto              = d.Impuesto,
                        Impuesto1             = d.Impuesto1,
                        Impuesto2             = d.Impuesto2,
                        Impuesto3             = d.Impuesto3,
                        MBase                 = d.MBase,
                        MesRelacion           = d.MesRelacion,
                        MontoDivisa           = d.MontoDivisa,
                        Neto                  = d.Neto,
                        NombreBeneficiario    = d.NombreBeneficiario,
                        NombreTitular         = d.NombreTitular,
                        Nota                  = d.Nota,
                        OrdenCompra           = d.OrdenCompra,
                        Pedido                = d.Pedido,
                        Planilla              = d.Planilla,
                        RazonSocial           = d.RazonSocial,
                        Recibo                = d.Recibo,
                        Renglones             = d.Renglones,
                        RetencionIslr         = d.RetencionIslr,
                        RetencionIva          = d.RetencionIva,
                        SaldoPendiente        = d.SaldoPendiente,
                        Serie                 = d.Serie,
                        Signo                 = d.Signo,
                        Situacion             = d.Situacion,
                        SubTotal              = d.SubTotal,
                        SubTotalImpuesto      = d.SubTotalImpuesto,
                        SubTotalNeto          = d.SubTotalNeto,
                        Tarifa                = d.Tarifa,
                        Tasa1                 = d.Tasa1,
                        Tasa2                 = d.Tasa2,
                        Tasa3                 = d.Tasa3,
                        TasaRetencionIslr     = d.TasaRetencionIslr,
                        TasaRetencionIva      = d.TasaRetencionIva,
                        Telefono              = d.Telefono,
                        TercerosIva           = d.TercerosIva,
                        Tipo                  = d.Tipo,
                        TipoCliente           = d.TipoCliente,
                        TipoRemision          = d.TipoRemision,
                        Total                 = d.Total,
                        Transporte            = d.Transporte,
                        Usuario               = d.Usuario,
                        Utilidad              = d.Utilidad,
                        Utilidadp             = d.Utilidadp,
                        Vendedor              = d.Vendedor,
                        Prefijo               = d.PrefijoSucursal,


                        //SE CREA LA CXC DEL DOCUMENTO
                        DocCxC = new DtoLibPosOffLine.Servidor.EnviarData.CxC()
                        {
                            Acumulado        = d.DocCxC.Acumulado,
                            Agencia          = d.DocCxC.Agencia,
                            AutoAgencia      = d.DocCxC.AutoAgencia,
                            AutoCliente      = d.DocCxC.AutoCliente,
                            AutoDocumento    = d.DocCxC.AutoDocumento,
                            AutoVendedor     = d.DocCxC.AutoVendedor,
                            Castigop         = d.DocCxC.Castigop,
                            CCobranza        = d.DocCxC.CCobranza,
                            CCobranzap       = d.DocCxC.CCobranzap,
                            CDepartamento    = d.DocCxC.CDepartamento,
                            CiRif            = d.DocCxC.CiRif,
                            Cliente          = d.DocCxC.Cliente,
                            CodigoCliente    = d.DocCxC.CodigoCliente,
                            CVentas          = d.DocCxC.CVentas,
                            CVentasp         = d.DocCxC.CVentasp,
                            Dias             = d.DocCxC.Dias,
                            Documento        = d.DocCxC.Documento,
                            EstatusAnulado   = d.DocCxC.EstatusAnulado,
                            EstatusCancelado = d.DocCxC.EstatusCancelado,
                            Fecha            = d.DocCxC.Fecha,
                            FechaVencimiento = d.DocCxC.FechaVencimiento,
                            Importe          = d.DocCxC.Importe,
                            ImporteNeto      = d.DocCxC.ImporteNeto,
                            Nota             = d.DocCxC.Nota,
                            Numero           = d.DocCxC.Numero,
                            Resta            = d.DocCxC.Resta,
                            Serie            = d.DocCxC.Serie,
                            Signo            = d.DocCxC.Signo,
                            TipoDocumento    = d.DocCxC.TipoDocumento,
                            FactorCambio     = d.DocCxC.FactorCambio,
                            ImporteDivisa    = d.DocCxC.ImporteDivisa,
                        },


                        //PAGO DEL DOCUMENTO
                        DocCxCPago = pago,


                        //DETALLES DE DOCUMENTO
                        Detalles = d.Detalles.Select(ddt =>
                        {
                            var ndt = new DtoLibPosOffLine.Servidor.EnviarData.DocumentoDetalle()
                            {
                                Auto              = ddt.Auto,
                                AutoCliente       = ddt.AutoCliente,
                                AutoDepartamento  = ddt.AutoDepartamento,
                                AutoDeposito      = ddt.AutoDeposito,
                                AutoGrupo         = ddt.AutoGrupo,
                                AutoProducto      = ddt.AutoProducto,
                                AutoSubGrupo      = ddt.AutoSubGrupo,
                                AutoTasa          = ddt.AutoTasa,
                                AutoVendedor      = ddt.AutoVendedor,
                                Cantidad          = ddt.Cantidad,
                                CantidadUnd       = ddt.CantidadUnd,
                                Categoria         = ddt.Categoria,
                                Cobranza          = ddt.Cobranza,
                                Cobranzap         = ddt.Cobranzap,
                                CobranzapVendedor = ddt.CobranzapVendedor,
                                CobranzaVendedor  = ddt.CobranzaVendedor,
                                Codigo            = ddt.Codigo,
                                CodigoDeposito    = ddt.CodigoDeposito,
                                CodigoVendedor    = ddt.CodigoVendedor,
                                ContenidoEmpaque  = ddt.ContenidoEmpaque,
                                Corte             = ddt.Corte,
                                CostoCompra       = ddt.CostoCompra,
                                CostoPromedioUnd  = ddt.CostoPromedioUnd,
                                CostoUnd          = ddt.CostoUnd,
                                CostoVenta        = ddt.CostoVenta,
                                Decimales         = ddt.Decimales,
                                Deposito          = ddt.Deposito,
                                Descuento1        = ddt.Descuento1,
                                Descuento1p       = ddt.Descuento1p,
                                Descuento2        = ddt.Descuento2,
                                Descuento2p       = ddt.Descuento2p,
                                Descuento3        = ddt.Descuento3,
                                Descuento3p       = ddt.Descuento3p,
                                Detalle           = ddt.Detalle,
                                DiasGarantia      = ddt.DiasGarantia,
                                Empaque           = ddt.Empaque,
                                EstatusAnulado    = ddt.EstatusAnulado,
                                EstatusChecked    = ddt.EstatusChecked,
                                EstatusCorte      = ddt.EstatusCorte,
                                EstatusGarantia   = ddt.EstatusGarantia,
                                EstatusSerial     = ddt.EstatusSerial,
                                Fecha             = ddt.Fecha,
                                Hora              = ddt.Hora,
                                Impuesto          = ddt.Impuesto,
                                Nombre            = ddt.Nombre,
                                PrecioFinal       = ddt.PrecioFinal,
                                PrecioItem        = ddt.PrecioItem,
                                PrecioNeto        = ddt.PrecioNeto,
                                PrecioSugerido    = ddt.PrecioSugerido,
                                PrecioUnd         = ddt.PrecioUnd,
                                Signo             = ddt.Signo,
                                Tarifa            = ddt.Tarifa,
                                Tasa              = ddt.Tasa,
                                Tipo              = ddt.Tipo,
                                Total             = ddt.Total,
                                TotalDescuento    = ddt.TotalDescuento,
                                TotalNeto         = ddt.TotalNeto,
                                Utilidad          = ddt.Utilidad,
                                Utilidadp         = ddt.Utilidadp,
                                Ventas            = ddt.Ventas,
                                Ventasp           = ddt.Ventasp,
                                VentaspVendedor   = ddt.VentaspVendedor,
                                VentasVendedor    = ddt.VentasVendedor,
                                X = ddt.X,
                                Y = ddt.Y,
                                Z = ddt.Z,
                            };
                            return(ndt);
                        }).ToList(),


                        //KARDEX DEL DOCUMENTO
                        MovKardex = d.MovKardex.Select(dmk =>
                        {
                            var nmk = new DtoLibPosOffLine.Servidor.EnviarData.ProductoKardex()
                            {
                                AutoConcepto   = dmk.AutoConcepto,
                                AutoDeposito   = dmk.AutoDeposito,
                                AutoProducto   = dmk.AutoProducto,
                                Cantidad       = dmk.Cantidad,
                                CantidadBono   = dmk.CantidadBono,
                                CantidadUnd    = dmk.CantidadUnd,
                                Codigo         = dmk.Codigo,
                                CodigoSucursal = dmk.CodigoSucursal,
                                CostoUnd       = dmk.CostoUnd,
                                Documento      = dmk.Documento,
                                Entidad        = dmk.Entidad,
                                EstatusAnulado = dmk.EstatusAnulado,
                                Fecha          = dmk.Fecha,
                                Hora           = dmk.Hora,
                                Modulo         = dmk.Modulo,
                                Nota           = dmk.Nota,
                                PrecioUnd      = dmk.PrecioUnd,
                                Siglas         = dmk.Siglas,
                                Signo          = dmk.Signo,
                                Total          = dmk.Total,
                                CodigoConcepto = dmk.CodigoConcepto,
                                NombreConcepto = dmk.NombreConcepto,
                                CodigoDeposito = dmk.CodigoDeposito,
                                NombreDeposito = dmk.NombreDeposito,
                            };
                            return(nmk);
                        }).ToList(),


                        // ACTUALIZACION DEL LO
                        ActDeposito = d.ActDeposito.Select(dp =>
                        {
                            var ndp = new DtoLibPosOffLine.Servidor.EnviarData.ProductoDeposito()
                            {
                                AutoDeposito = dp.AutoDeposito,
                                AutoProducto = dp.AutoProducto,
                                CantUnd      = dp.CantUnd,
                            };
                            return(ndp);
                        }).ToList(),
                    };
                    return(nr);
                }).ToList();

                var mov = new DtoLibPosOffLine.Servidor.EnviarData.Movimiento();
                mov.Documentos = Documentos;
                mov.Prefijo    = _prefijo;
                mov.Cierre     = _cierre;
                Movimientos.Add(mov);
            }
            ;
            fichaDTO.Movimientos = Movimientos;
            fichaDTO.FechasMov   = Fechas;

            var r01 = MyData.Servidor_EnviarData(fichaDTO);

            if (r01.Result == DtoLib.Enumerados.EnumResult.isError)
            {
                result.Mensaje = r01.Mensaje;
                result.Result  = OOB.Enumerados.EnumResult.isError;
                return(result);
            }

            return(result);
        }