예제 #1
0
        public static TS_BEMensaje SynchronizedSetSale(TerminalSIGES.Models.Lado Cara, TS_BEArticulo Transaccion)
        {
            TS_BELoadInput     cLoadingInput  = TSSalesInput.LoadInput();
            TS_BEClienteInput  cClienteInput  = TSSalesInput.InputClienteAutomaticMethod(Cara);
            TS_BECabeceraInput cCabeceraInput = TSSalesInput.InputCabeceraAutomaticMethod(Cara);

            TS_BEDetalleInput[]   cDetalleInput  = TSSalesInput.InputDetalleAutomaticMethod(Transaccion).ToArray();
            List <TS_BEPagoInput> vPagos         = TSSalesInput.InputPagosAutomaticMethod(Cara, Transaccion);
            TS_BEGrabarConfig     vConfiguracion = new TS_BEGrabarConfig()
            {
                IsNotPrint = Cara.IsImprimir
            };

            if (vPagos == null)
            {
                return(new TS_BEMensaje()
                {
                    mensaje = "EL MONTO TOTAL NO COINCIDE CON LOS PAGOS DE LA VENTA", Ok = false
                });
            }

            TS_BEPagoInput[] cPagoInput = vPagos.ToArray();

            TSSalesInput.InputMoneyAutomaticMethod(Cara, cCabeceraInput, cDetalleInput, cPagoInput);
            TS_SISalesClient client = null;

            try
            {
                client = new TS_SISalesClient(Helper.ServicioSoapBinding(), new EndpointAddress(Config.Services.Sales));
                TS_BERetornoTransaccion respuesta = client.GrabarTransaccion(cDetalleInput, cCabeceraInput, cPagoInput, cClienteInput, cLoadingInput, vConfiguracion);
                if (respuesta.Ok)
                {
                    return(new TS_BEMensaje()
                    {
                        mensaje = respuesta.Codigo, Ok = true
                    });
                }
                else
                {
                    return(new TS_BEMensaje()
                    {
                        mensaje = respuesta.Mensaje, Ok = false
                    });
                }
            }
            catch (Exception e)
            {
                if (client != null)
                {
                    if (client.State == CommunicationState.Opened)
                    {
                        client.Close();
                    }
                }
                return(new TS_BEMensaje()
                {
                    mensaje = e.Message, Ok = false
                });
            }
        }
예제 #2
0
        public static List <TS_BEDetalleInput> Inputcdetalle(TS_BECabeceraInput cCabecera)
        {
            List <TS_BEDetalleInput> cDetalleTodo = new List <TS_BEDetalleInput>();

            foreach (var item in TSSalesApp.Detalles)
            {
                cDetalleTodo.Add(new TS_BEDetalleInput()
                {
                    item            = item.item,
                    cdarticulo      = item.cdarticulo,
                    cdarticulosunat = item.cdarticulosunat,
                    dsarticulo      = item.dsarticulo,
                    precio          = item.precio,
                    cantidad        = item.cantidad,
                    total           = item.total,
                    impuesto        = item.impuesto,
                    mtodscto        = item.mtodscto,
                    mtoimpuesto     = item.mtoimpuesto,
                    subtotal        = item.subtotal,
                    moverstock      = item.moverstock,
                    cara            = item.cara,
                    costo           = item.costo,
                    cdunimed        = item.cdunimed,
                    nrogasboy       = item.nrogasboy,
                    precio_orig     = item.precio_orig,
                    //  redondea_indecopi = item.redondea_indecopi,
                    tpformula         = item.tpformula,
                    impuesto_plastico = item.impuesto_plastico,
                    valorconversion   = item.valorconversion,
                    cdmedequiv        = item.cdmedequiv,
                    tpconversion      = item.tpconversion
                });
            }
            return(cDetalleTodo);
        }
예제 #3
0
        public static async Task <SalesEstado> GrabarVenta(bool ConIgv, bool IsCanje, bool IsNoImprimir)
        {
            SalesEstado Respuesta = SalesEstado.ErrorSistema;
            await Task.Run(() => {
                TS_SISalesClient cliente = null;
                try
                {
                    TSCustomerApp.IsCanje = IsCanje;
                    cliente        = new TS_SISalesClient(Helper.ServicioSoapBinding(), new EndpointAddress(Config.Services.Sales));
                    cDetalleInput  = new TS_BEDetalleInput[] { };
                    cCabeceraInput = new TS_BECabeceraInput();
                    cClienteInput  = new TS_BEClienteInput();
                    cCabeceraInput = TSSalesInput.InputcCabecera();
                    cClienteInput  = TSSalesInput.InputcCliente();
                    cDetalleInput  = TSSalesInput.Inputcdetalle(cCabeceraInput).ToArray();
                    cLoadingInput  = new TS_BELoadInput();
                    cLoadingInput  = TSSalesInput.LoadInput();
                    vConfiguracion = new TS_BEGrabarConfig()
                    {
                        IsNotPrint = IsNoImprimir
                    };

                    if (ConIgv)
                    {
                        TSSalesInput.RecalcularIGV(cDetalleInput);
                    }

                    _GrabarTransaccionCompleted(cliente.GrabarTransaccion(cDetalleInput, cCabeceraInput, cPagoInput, cClienteInput, cLoadingInput, vConfiguracion));
                    Respuesta = SalesEstado.EsperandoRespuesta;
                }
                catch
                {
                    Respuesta = SalesEstado.ErrorSistema;
                }
                finally
                {
                    if (cliente != null)
                    {
                        if (cliente.State == CommunicationState.Opened)
                        {
                            cliente.Close();
                        }
                    }
                }
            });

            return(Respuesta);
        }
예제 #4
0
        public static TS_BEPagoInput InputcPago(TS_BECabeceraInput cCabecera)

        {
            TS_BEPagoInput cPago = new TS_BEPagoInput();

            cPago.cdbanco    = "";
            cPago.cdtarjeta  = "";
            cPago.cdtppago   = "";
            cPago.mtopagodol = 0;
            cPago.mtopagosol = 0;//TSSalesApp.;
            cPago.nrocheque  = "";
            cPago.nrocuenta  = "";
            cPago.nrotarjeta = "";

            return(cPago);
        }
예제 #5
0
        public static void InputMoneyAutomaticMethod(TerminalSIGES.Models.Lado Cara, TS_BECabeceraInput cCabecera, TS_BEDetalleInput[] cDetalles, TS_BEPagoInput[] cPagos)
        {
            if (Cara.Documento == TerminalSIGES.Models.EDocumento.Canje || Cara.Documento == TerminalSIGES.Models.EDocumento.NotaDespacho ||
                Cara.Documento == TerminalSIGES.Models.EDocumento.TranferenciaGratuita)
            {
                return;
            }

            decimal TotalProducto = 0;
            decimal TotalPagos    = 0;

            foreach (TS_BEDetalleInput item in cDetalles)
            {
                TotalProducto += item.total;
            }
            foreach (TerminalSIGES.Models.Pago Pago in Cara.Pagos)
            {
                TotalPagos += (Pago.Dolares * TSSalesApp.TipoCambio) + (Pago.Soles);
            }

            cCabecera.mtovueltosol = TotalPagos > TotalProducto ? TotalPagos - TotalProducto : 0;
        }
예제 #6
0
        public static TS_BECabeceraInput InputcCabecera()
        {
            TS_BECabeceraInput cCabecera = new TS_BECabeceraInput();

            cCabecera.TipoVenta         = TSSalesApp.TipoVenta;
            cCabecera.cdcliente         = TSCustomerApp.ClientOuput.cdcliente;
            cCabecera.cdmoneda          = "S";
            cCabecera.cdtipodoc         = TSCustomerApp.TipoComprobante.Nro;
            cCabecera.cdusuario         = TSLoginApp.UserName;
            cCabecera.cdvendedor        = "";
            cCabecera.chofer            = TSSalesApp.vCabecera.chofer;
            cCabecera.mtovueltodol      = TSSalesApp.vCabecera.mtovueltodol;
            cCabecera.mtovueltosol      = TSSalesApp.vCabecera.mtovueltosol;
            cCabecera.nroplaca          = TSSalesApp.vCabecera.nroplaca;
            cCabecera.nrotarjeta        = TSSalesApp.vCabecera.nrotarjeta;
            cCabecera.observacion       = "";
            cCabecera.odometro          = TSSalesApp.vCabecera.odometro;
            cCabecera.redondea_indecopi = 0;
            cCabecera.rscliente         = TSCustomerApp.ClientOuput.rscliente;
            cCabecera.ruccliente        = TSCustomerApp.ClientOuput.ruccliente;
            cCabecera.dsusuario         = TSLoginApp.UserFull;
            return(cCabecera);
        }