public ActionResult Edit(int?id)
        {
            var entity = new SolicitudEdit()
            {
                solicitud = new SolicitudEntity()
            };


            try
            {
                ViewBag.Form = false;
                if (id.HasValue)
                {
                    ViewBag.Form     = true;
                    entity.solicitud = IApp.solicitudServis.ObtenerDetalle(id);
                }

                entity.ddlPadronElectoral = IApp.PadronElectoralServis.Obtenerddl();
                entity.ddlTipoTramite     = IApp.TipoTramiteServis.Obtenerddl();
            }
            catch (Exception ex)
            {
                return(Content(ex.Message));
            }

            return(View(entity));
        }
Example #2
0
        public operacionCTGReturnType ConfirmarArribo(SolicitudEdit solicitud, AfipAuth auth, string consumoPropio, long?establecimientoAfip)
        {
            System.Net.ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => { return(true); };
            var service = new CTGService_v30 {
                Proxy = WebProxy, Timeout = 3600000, Url = _ctgServiceUrl
            };

            var request = new confirmarArriboRequestType();

            request.auth                     = new authType();
            request.auth.token               = auth.Token;
            request.auth.sign                = auth.Sign;
            request.auth.cuitRepresentado    = long.Parse(auth.CuitRepresentado);
            request.datosConfirmarArribo     = new datosConfirmarArriboType();
            request.datosConfirmarArribo.ctg = Convert.ToInt64(solicitud.Ctg);
            request.datosConfirmarArribo.cantKilosCartaPorte = (long)solicitud.KilogramosEstimados;
            request.datosConfirmarArribo.cartaPorte          = Convert.ToInt64(solicitud.NumeroCartaDePorte);
            request.datosConfirmarArribo.consumoPropio       = consumoPropio;

            if (solicitud.ClientePagadorDelFlete != null && int.Parse(solicitud.ClientePagadorDelFlete.Id) > 0 && new EmpresaAdmin().GetByClienteId(int.Parse(solicitud.ClientePagadorDelFlete.Id)) != null)
            {
                if (solicitud.ProveedorTransportista != null)
                {
                    request.datosConfirmarArribo.cuitTransportista = (long)Convert.ToDouble(solicitud.ProveedorTransportista.NumeroDocumento); //27054888649;
                }
            }
            else
            {
                if (solicitud.ChoferTransportista != null)
                {
                    request.datosConfirmarArribo.cuitTransportista = (long)Convert.ToDouble(solicitud.ChoferTransportista.Cuit); //27054888649;
                }
            }

            if (establecimientoAfip.HasValue)
            {
                request.datosConfirmarArribo.establecimiento          = establecimientoAfip.Value;
                request.datosConfirmarArribo.establecimientoSpecified = true;
            }

            return(service.confirmarArribo(request));
        }
Example #3
0
        public operacionCTGReturnType RegresarOrigenCtgRechazado(SolicitudEdit solicitud, AfipAuth auth)
        {
            System.Net.ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => { return(true); };
            var service = new CTGService_v30 {
                Proxy = WebProxy, Timeout = 3600000, Url = _ctgServiceUrl
            };

            var request = new regresarAOrigenCTGRechazadoRequestType();

            request.auth                  = new authType();
            request.auth.token            = auth.Token;
            request.auth.sign             = auth.Sign;
            request.auth.cuitRepresentado = long.Parse(auth.CuitRepresentado);

            request.datosRegresarAOrigenCTGRechazado             = new datosRegresarAOrigenCTGRechazadoType();
            request.datosRegresarAOrigenCTGRechazado.cartaPorte  = Convert.ToInt64(solicitud.NumeroCartaDePorte);
            request.datosRegresarAOrigenCTGRechazado.ctg         = Convert.ToInt64(solicitud.Ctg);
            request.datosRegresarAOrigenCTGRechazado.kmARecorrer = (uint)solicitud.KmRecorridos;

            return(service.regresarAOrigenCTGRechazado(request));
        }
Example #4
0
        public operacionCTGReturnType CambiarDestinoDestinatarioCtgRechazado(SolicitudEdit solicitud, AfipAuth auth)
        {
            if (Environment.MachineName.ToUpper() == "WI7-SIS22N-ADM" || Environment.MachineName.ToUpper() == "SRV-MS10-ADM")
            {
                var Response         = new datosOperacionCTGResponseType();
                var RetornarAfipHomo = new operacionCTGReturnType();

                RetornarAfipHomo.datosResponse                 = Response;
                RetornarAfipHomo.datosResponse.cartaPorte      = Convert.ToInt64(solicitud.NumeroCartaDePorte);
                RetornarAfipHomo.datosResponse.ctg             = Convert.ToInt64(solicitud.Ctg);
                RetornarAfipHomo.datosResponse.codigoOperacion = Convert.ToInt64("1234");
                RetornarAfipHomo.datosResponse.fechaHora       = DateTime.Now.ToString();
                RetornarAfipHomo.arrayErrores = new string[0];

                return(RetornarAfipHomo);
            }

            System.Net.ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => { return(true); };
            var service = new CTGService_v30 {
                Proxy = WebProxy, Timeout = 3600000, Url = _ctgServiceUrl
            };

            var request = new cambiarDestinoDestinatarioCTGRechazadoRequestType();

            request.auth                  = new authType();
            request.auth.token            = auth.Token;
            request.auth.sign             = auth.Sign;
            request.auth.cuitRepresentado = long.Parse(auth.CuitRepresentado);

            request.datosCambiarDestinoDestinatarioCTGRechazado                        = new datosCambiarDestinoDestinatarioCTGRechazadoType();
            request.datosCambiarDestinoDestinatarioCTGRechazado.cartaPorte             = Convert.ToInt64(solicitud.NumeroCartaDePorte);
            request.datosCambiarDestinoDestinatarioCTGRechazado.codigoLocalidadDestino = solicitud.EstablecimientoDestinoCambio.LocalidadId;
            request.datosCambiarDestinoDestinatarioCTGRechazado.ctg                    = Convert.ToInt64(solicitud.Ctg);
            request.datosCambiarDestinoDestinatarioCTGRechazado.cuitDestinatario       = Convert.ToInt64(solicitud.ClienteDestinatarioCambio.Cuit);
            request.datosCambiarDestinoDestinatarioCTGRechazado.cuitDestino            = Convert.ToInt64(solicitud.EstablecimientoDestinoCambio.InterlocutorDestinatario.Cuit);
            request.datosCambiarDestinoDestinatarioCTGRechazado.kmARecorrer            = (uint)solicitud.KmRecorridos;

            return(service.cambiarDestinoDestinatarioCTGRechazado(request));
        }
Example #5
0
        public EstadoSap PrefacturaSap(SolicitudEdit solicitud, bool anula, bool cambioDestino)
        {
            #region Init

            System.Net.ServicePointManager.ServerCertificateValidationCallback =
                (sender, certificate, chain, sslPolicyErrors) => { return(true); };

            var service = new re_prefacturas_out_async_MIBinding
            {
                Credentials = new System.Net.NetworkCredential(_user, _pass),
                Url         = _url
            };

            var prefactura     = new prefact_DT();
            var cabecera       = new prefact_DTSAPSDLiquidacionCabecera();
            var cabeceraTextos = new prefact_DTSAPSDLiquidacionCabeceraTextos();
            var condicion      = new prefact_DTSAPSDLiquidacionCondicion();
            var posicion       = new prefact_DTSAPSDLiquidacionPosicion();
            var xcabecera      = new List <prefact_DTSAPSDLiquidacionCabecera>();

            #endregion

            #region SAPSDLiquidacionCabecera

            cabecera.Id_Tipo_Documento = "ZGKB";
            cabecera.Id_Liquidacion    = solicitud.NumeroCartaDePorte;
            cabecera.SAP_Id_Operacion  = solicitud.NumeroCartaDePorte;

            if (solicitud.FechaDeEmision.HasValue)
            {
                cabecera.SAP_Fecha_Emision    = solicitud.FechaDeEmision.Value.Year + "" + solicitud.FechaDeEmision.Value.Month.ToString().PadLeft(2, '0') + "" + solicitud.FechaDeEmision.Value.Day.ToString().PadLeft(2, '0');
                cabecera.SAP_Fecha_Factura    = solicitud.FechaDeEmision.Value.Year + "" + solicitud.FechaDeEmision.Value.Month.ToString().PadLeft(2, '0') + "" + solicitud.FechaDeEmision.Value.Day.ToString().PadLeft(2, '0');
                cabecera.SAP_Fecha_Prestacion = solicitud.FechaDeEmision.Value.Year + "" + solicitud.FechaDeEmision.Value.Month.ToString().PadLeft(2, '0') + "" + solicitud.FechaDeEmision.Value.Day.ToString().PadLeft(2, '0');
                cabecera.SAP_Fecha_valor      = solicitud.FechaDeEmision.Value.Year + "" + solicitud.FechaDeEmision.Value.Month.ToString().PadLeft(2, '0') + "" + solicitud.FechaDeEmision.Value.Day.ToString().PadLeft(2, '0');
            }

            // TOMAR EN CUENTA QUE SEGUN TIPO DE CARTA DE PORTE VA A IR EL REMITENTE COMERCIAL EN LUGAR
            // DEL TITULAR DE LA CARTA DE PORTE
            // SI EL TITULAR NO ES EMPRESA VA EMPRESA y NO PROVEEDOR. (SOLO PARA SAP)
            var tipoCarta = new GeneralAdmin().GetTipoCartaById(solicitud.TipoDeCartaId.Value);

            switch (tipoCarta.Descripcion)
            {
            case "Venta de granos propios":
                if (solicitud.ProveedorTitularCartaDePorte != null && (!string.IsNullOrEmpty(solicitud.ProveedorTitularCartaDePorte.SapId)))
                {
                    var empresaTitular = new EmpresaAdmin().GetBySapId(solicitud.ProveedorTitularCartaDePorte.SapId);

                    if (empresaTitular != null && !string.IsNullOrEmpty(empresaTitular.IdSapOrganizacionDeVenta))
                    {
                        cabecera.SAP_Id_Sociedad = empresaTitular.IdSapOrganizacionDeVenta;
                    }

                    if (solicitud.ClienteIntermediario != null && !string.IsNullOrEmpty(solicitud.ClienteIntermediario.Id) && int.Parse(solicitud.ClienteIntermediario.Id) > 0)
                    {
                        cabecera.SAP_Id_Ag_Solicitante = solicitud.ClienteIntermediario.Id;
                    }
                    else if (solicitud.ClienteRemitenteComercial != null && !string.IsNullOrEmpty(solicitud.ClienteRemitenteComercial.Id) && int.Parse(solicitud.ClienteRemitenteComercial.Id) > 0)
                    {
                        cabecera.SAP_Id_Ag_Solicitante = solicitud.ClienteRemitenteComercial.Id;
                    }
                    else if (solicitud.ClienteDestinatario != null && !string.IsNullOrEmpty(solicitud.ClienteDestinatario.Id) && int.Parse(solicitud.ClienteDestinatario.Id) > 0)
                    {
                        cabecera.SAP_Id_Ag_Solicitante = solicitud.ClienteDestinatario.Id;
                    }
                }
                break;

            case "Venta de granos de terceros":
                if (solicitud.ClienteRemitenteComercial != null)
                {
                    var empresa = new EmpresaAdmin().GetByClienteId(int.Parse(solicitud.ClienteRemitenteComercial.Id));

                    if (empresa != null)
                    {
                        cabecera.SAP_Id_Sociedad = empresa.IdSapOrganizacionDeVenta;
                    }
                }

                break;

            case "Compra de granos que transportamos":
                break;

            case "Compra de granos":
                break;

            case "Traslado de granos":
            case "Canje":
                if (solicitud.ProveedorTitularCartaDePorte != null && (!string.IsNullOrEmpty(solicitud.ProveedorTitularCartaDePorte.SapId)))
                {
                    var empresaTitular = new EmpresaAdmin().GetBySapId(solicitud.ProveedorTitularCartaDePorte.SapId);

                    if (empresaTitular != null)
                    {
                        cabecera.SAP_Id_Sociedad = empresaTitular.IdSapOrganizacionDeVenta;
                    }
                }
                break;

            case "Terceros por venta  de Granos de producción propia":
                if (solicitud.ClienteRemitenteComercial != null && int.Parse(solicitud.ClienteRemitenteComercial.Id) > 0)
                {
                    var empresa = new EmpresaAdmin().GetByClienteId(int.Parse(solicitud.ClienteRemitenteComercial.Id));

                    if (empresa != null)
                    {
                        cabecera.SAP_Id_Sociedad = empresa.IdSapOrganizacionDeVenta;
                    }
                }

                break;
            }

            if (!string.Equals(tipoCarta.Descripcion, "Venta de granos propios") && solicitud.ClienteDestinatario != null)
            {
                cabecera.SAP_Id_Ag_Solicitante = solicitud.ClienteDestinatario.Id;
            }

            cabecera.SAP_Id_We_Destintario = solicitud.ClienteDestinatario == null ? string.Empty : solicitud.ClienteDestino.Id.PadLeft(10, '0');

            if (cambioDestino && solicitud.EstablecimientoDestinoCambio != null && solicitud.EstablecimientoDestinoCambio.InterlocutorDestinatario != null)
            {
                cabecera.SAP_Id_Ag_Solicitante = solicitud.ClienteDestinatarioCambio.Id;
                cabecera.SAP_Id_We_Destintario = solicitud.EstablecimientoDestinoCambio.InterlocutorDestinatario.Id.PadLeft(10, '0');
            }



            if (solicitud.ProveedorTransportista != null && solicitud.ProveedorTransportista.Id > 0 &&
                solicitud.EstadoFlete.HasValue && solicitud.EstadoFlete.Value.ToString() != "FletePagado")
            {
                cabecera.SAP_Id_Tr_Transportista = solicitud.ProveedorTransportista.SapId;
            }

            cabecera.SAP_Id_SubOperación   = solicitud.NumeroContrato.ToString();
            cabecera.SAP_Id_Punto_de_Venta = "01";

            if (anula)
            {
                var codigoReferencia = solicitud.CodigoRespuestaEnvioSAP;
                if (string.IsNullOrEmpty(solicitud.CodigoRespuestaEnvioSAP))
                {
                    codigoReferencia = "9999999991";
                }

                cabecera.SAP_Id_Doc_Referencia      = codigoReferencia;
                cabecera.SAP_Indicador_Doc_Refencia = "X";
            }

            cabecera.SAP_Id_Moneda = CDPSession.Current.Usuario.CurrentEmpresa.IdSapMoneda;

            cabecera.SAP_Tipo_de_Cambio       = 1.000000M;
            cabecera.SAP_Id_Condicion_de_pago = "CTDO";
            cabecera.SAP_Id_Zs_Cedente        = (solicitud.ClienteCorredor != null && int.Parse(solicitud.ClienteCorredor.Id) > 0) ? solicitud.ClienteCorredor.Id.PadLeft(10, '0') : string.Empty;

            // Definiciones
            if (tipoCarta.Descripcion.Equals("Traslado de granos"))
            {
                cabecera.Id_Tipo_Documento   = "ZTGR";
                cabecera.SAP_Id_SubOperación = solicitud.EstablecimientoProcedencia.IdCentroSap + "/" + solicitud.EstablecimientoProcedencia.IdAlmacenSap;
                cabecera.SAP_Id_Centro       = solicitud.EstablecimientoProcedencia.IdCentroSap;
                cabecera.SAP_Id_SubOperación = solicitud.EstablecimientoProcedencia.IdAlmacenSap;
            }

            if (tipoCarta.Descripcion.Equals("Terceros por venta  de Granos de producción propia") &&
                solicitud.EstadoEnSAP == (int)EstadoSap.PrimerEnvioTerceros)
            {
                cabecera.Id_Tipo_Documento     = "ZGKR";
                cabecera.SAP_Id_Ag_Solicitante = solicitud.EstablecimientoProcedencia.InterlocutorDestinatario.Id.PadLeft(10, '0');
                cabecera.SAP_Id_We_Destintario = solicitud.EstablecimientoProcedencia.InterlocutorDestinatario.Id.PadLeft(10, '0');
            }

            if (tipoCarta.Descripcion.Equals("Venta de granos propios"))
            {
                var sapIdAgSolicitante = string.Empty;

                //JIRA MDS-1282
                //CartaDePorte.Common.Tools.Logger.InfoFormat("201600408 Inicio Pedido de cambio Normativa AFIP (Acopio)");
                //CartaDePorte.Common.Tools.Logger.InfoFormat("201600408 Si figura Cresud en Remitente Comercial, el stock se debe consignar en el Destinatario.");
                //CartaDePorte.Common.Tools.Logger.InfoFormat("201600408 Si figura Cresud en Intermediario, el stock se debe consignar en el Remitente Comercial.");
                //CartaDePorte.Common.Tools.Logger.InfoFormat("201600408 1.IdSolicitud {0}", solicitud.IdSolicitud);
                //CartaDePorte.Common.Tools.Logger.InfoFormat("201600408 1.Tipo {0}", solicitud.TipoDeCarta.Descripcion);

                //Si figura Cresud en Remitente Comercial, el stock se debe consignar en el Destinatario
                //Si figura Cresud en Intermediario, el stock se debe consignar en el Remitente Comercial
                //ES CRESUD => Lo cambio por le ClienteRemitenteComercial
                //Si el Remitente Comercial es null tiene que poner el Destinatario
                if (solicitud.ClienteRemitenteComercial != null && int.Parse(solicitud.ClienteRemitenteComercial.Id) > 0)
                {
                    var clienteId = int.Parse(solicitud.ClienteRemitenteComercial.Id);

                    if (clienteId == 1000005)
                    {
                        sapIdAgSolicitante             = clienteId.ToString();
                        cabecera.SAP_Id_Ag_Solicitante = sapIdAgSolicitante.PadLeft(10, '0');
                    }
                    else if (clienteId == 1000005)
                    {
                        if (solicitud.ClienteRemitenteComercial == null)
                        {
                            sapIdAgSolicitante = solicitud.ClienteDestinatario.Id;
                        }
                        else
                        {
                            sapIdAgSolicitante = solicitud.ClienteRemitenteComercial.Id;
                        }

                        cabecera.SAP_Id_Ag_Solicitante = sapIdAgSolicitante.PadLeft(10, '0');
                    }
                }

                //CartaDePorte.Common.Tools.Logger.InfoFormat("201600408 2.IdSolicitud {0}", solicitud.IdSolicitud);
                //CartaDePorte.Common.Tools.Logger.InfoFormat("201600408 2.Tipo {0}", solicitud.TipoDeCarta.Descripcion);
                //CartaDePorte.Common.Tools.Logger.InfoFormat("201600408 2.SapIdAgSolicitante es CRESUD {0}", cabecera.SAP_Id_Ag_Solicitante);
                //CartaDePorte.Common.Tools.Logger.InfoFormat("201600408 Fin Pedido de cambio Normativa AFIP (Acopio)");

                if (cambioDestino)
                {
                    cabecera.SAP_Id_Ag_Solicitante = solicitud.ClienteDestinatarioCambio == null ? string.Empty : solicitud.ClienteDestinatarioCambio.Id;
                }
            }
            xcabecera.Add(cabecera);
            prefactura.SAPSDLiquidacionCabecera = xcabecera.ToArray();

            #endregion

            #region SAPSDLiquidacionCabeceraTextos

            var xcabeceraTextos = new List <prefact_DTSAPSDLiquidacionCabeceraTextos>();
            cabeceraTextos.Texto = solicitud.Observaciones;
            cabeceraTextos.Id    = "0019";
            xcabeceraTextos.Add(cabeceraTextos);
            prefactura.SAPSDLiquidacionCabeceraTextos = xcabeceraTextos.ToArray();

            #endregion

            #region SAPSDLiquidacionCondicion

            var xcondicion = new List <prefact_DTSAPSDLiquidacionCondicion>();

            if (solicitud.EstadoFlete.Value.ToString() != "FletePagado")
            {
                var     totalImporteCondicion = solicitud.TarifaReal.HasValue ? solicitud.TarifaReal.Value : 0M;
                decimal totalKilogramos       = 0;

                if (solicitud.CargaPesadaDestino.HasValue && solicitud.CargaPesadaDestino.Value)
                {
                    totalKilogramos = solicitud.KilogramosEstimados.Value;
                }
                else
                {
                    totalKilogramos = solicitud.PesoNeto.Value;
                }

                totalImporteCondicion = (solicitud.TarifaReal.Value * totalKilogramos) / 1000M;

                // Si el pagador del flete no es empresa enviar valor CERO.
                condicion.Importe_Condicion = 0;

                if (solicitud.ClientePagadorDelFlete != null && int.Parse(solicitud.ClientePagadorDelFlete.Id) > 0)
                {
                    var empresa = new EmpresaAdmin().GetByClienteId(int.Parse(solicitud.ClientePagadorDelFlete.Id));

                    if (empresa != null)
                    {
                        condicion.Importe_Condicion = totalImporteCondicion;
                    }
                }

                condicion.SAP_Id_Clase_de_Condicion = "Z001";
                //condicion.Porcentaje_Condicion = 0;
                //condicion.Porcentaje_No_Gravado = 0;

                condicion.SAP_Id_Moneda_Condicion = CDPSession.Current.Usuario.CurrentEmpresa.IdSapMoneda;

                condicion.Id_Posicion    = "1";
                condicion.Id_Liquidacion = solicitud.NumeroCartaDePorte;

                xcondicion.Add(condicion);
            }

            prefactura.SAPSDLiquidacionCondicion = xcondicion.ToArray();

            #endregion

            #region SAPSDLiquidacionPosicion

            var xcuotas = new List <prefact_DTSAPSDLiquidacionCuotas>();
            prefactura.SAPSDLiquidacionCuotas = xcuotas.ToArray();
            var xposicion = new List <prefact_DTSAPSDLiquidacionPosicion>();

            posicion.Id_Liquidacion  = solicitud.NumeroCartaDePorte;
            posicion.SAP_Id_Material = solicitud.Grano == null ? string.Empty : solicitud.Grano.IdMaterialSap;
            posicion.Id_Posicion     = "1";

            if (solicitud.EstablecimientoProcedencia != null)
            {
                posicion.SAP_Id_CEBE       = solicitud.EstablecimientoProcedencia.IdCEBE;
                posicion.SAP_id_Centro     = solicitud.EstablecimientoProcedencia.IdCentroSap;
                posicion.SAP_id_Almacen    = solicitud.EstablecimientoProcedencia.IdAlmacenSap;
                posicion.SAP_id_Expedicion = solicitud.EstablecimientoProcedencia.IdExpedicion;
            }

            posicion.SAP_Utilizacion = string.Empty;
            posicion.Id_Unidad       = string.Empty;
            posicion.Agrupar_Cta_Cte = string.Empty;

            posicion.Referencia = string.Empty;

            if (tipoCarta.Descripcion.Equals("Traslado de granos"))
            {
                posicion.SAP_Id_CEBE       = solicitud.EstablecimientoDestino.IdCEBE;
                posicion.SAP_id_Centro     = solicitud.EstablecimientoDestino.IdCentroSap;
                posicion.SAP_id_Almacen    = solicitud.EstablecimientoDestino.IdAlmacenSap;
                posicion.SAP_id_Expedicion = solicitud.EstablecimientoDestino.IdExpedicion;

                if (solicitud.CargaPesadaDestino.HasValue && solicitud.CargaPesadaDestino.Value)
                {
                    posicion.Cantidad = solicitud.KilogramosEstimados.HasValue ? solicitud.KilogramosEstimados.Value :  0;
                }
                else
                {
                    posicion.Cantidad = solicitud.PesoNeto.Value;
                }
            }
            else
            {
                if (solicitud.CargaPesadaDestino.HasValue && solicitud.CargaPesadaDestino.Value)
                {
                    posicion.Peso = solicitud.KilogramosEstimados.HasValue ? solicitud.KilogramosEstimados.Value : 0;
                }
                else
                {
                    posicion.Peso = solicitud.PesoNeto.Value;
                }

                posicion.Cantidad = 1;
            }

            xposicion.Add(posicion);
            prefactura.SAPSDLiquidacionPosicion = xposicion.ToArray();
            #endregion

            var xposicionTextos = new List <prefact_DTSAPSDLiquidacionPosicionTextos>();
            prefactura.SAPSDLiquidacionPosicionTextos = xposicionTextos.ToArray();

            var xreferencias = new List <prefact_DTSAPSDLiquidacionReferencia>();
            prefactura.SAPSDLiquidacionReferencia = xreferencias.ToArray();

            try
            {
                service.re_prefacturas_out_async_MI(prefactura);
            }
            catch (System.Exception e)
            {
            }

            var result = default(EstadoSap);

            if (!anula)
            {
                if (tipoCarta.Descripcion.Equals("Terceros por venta  de Granos de producción propia") &&
                    solicitud.EstadoEnSAP == (int)EstadoSap.PrimerEnvioTerceros)
                {
                    result = EstadoSap.PrimerEnvioTerceros;
                }
                else
                {
                    result = EstadoSap.EnProceso;
                }
            }
            else
            {
                result = EstadoSap.EnProcesoAnulacion;
            }


            return(result);
        }
Example #6
0
        public solicitarCTGReturnType SolicitarCtgInicial(SolicitudEdit solicitud, AfipAuth afipAuth)
        {
            System.Net.ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => { return(true); };

            var service = new CTGService_v30 {
                Proxy = WebProxy, Timeout = 3600000, Url = _ctgServiceUrl
            };

            if (Environment.MachineName.ToUpper() == "WI7-SIS22N-ADM" || Environment.MachineName.ToUpper() == "SRV-MS10-ADM")
            {
                var retornarAfipHomo = new solicitarCTGReturnType();
                var response         = new datosSolicitarCTGResponseType();
                var datos            = new datosSolicitarCTGType();

                retornarAfipHomo.arrayErrores = new string[0];
                retornarAfipHomo.observacion  = "CTG otorgado";
                retornarAfipHomo.datosSolicitarCTGResponse = response;
                retornarAfipHomo.datosSolicitarCTGResponse.datosSolicitarCTG = datos;
                var rnd = new Random();
                retornarAfipHomo.datosSolicitarCTGResponse.datosSolicitarCTG.ctg = Convert.ToInt64(rnd.Next(100000000, 999999999));

                return(retornarAfipHomo);
            }

            var request = new solicitarCTGInicialRequestType();

            request.auth                  = new authType();
            request.auth.token            = afipAuth.Token;
            request.auth.sign             = afipAuth.Sign;
            request.auth.cuitRepresentado = long.Parse(afipAuth.CuitRepresentado);

            request.datosSolicitarCTGInicial = new datosSolicitarCTGInicialType();

            request.datosSolicitarCTGInicial.cartaPorte    = (long)Convert.ToDouble(solicitud.NumeroCartaDePorte);
            request.datosSolicitarCTGInicial.codigoEspecie = solicitud.Grano == null ? 0 : solicitud.Grano.EspecieAfipCodigo;

            if (solicitud.ClienteDestino != null && (!String.IsNullOrEmpty(solicitud.ClienteDestino.Cuit)))
            {
                request.datosSolicitarCTGInicial.cuitDestino = (long)Convert.ToDouble(solicitud.ClienteDestino.Cuit);
            }

            if (solicitud.ClienteDestinatario != null && (!String.IsNullOrEmpty(solicitud.ClienteDestinatario.Cuit)))
            {
                request.datosSolicitarCTGInicial.cuitDestinatario = (long)Convert.ToDouble(solicitud.ClienteDestinatario.Cuit);
            }

            request.datosSolicitarCTGInicial.codigoLocalidadOrigen  = solicitud.EstablecimientoProcedencia == null ? 0 : solicitud.EstablecimientoProcedencia.LocalidadId;
            request.datosSolicitarCTGInicial.codigoLocalidadDestino = solicitud.EstablecimientoDestino == null ? 0 : solicitud.EstablecimientoDestino.LocalidadId;
            request.datosSolicitarCTGInicial.codigoCosecha          = solicitud.Grano == null ? string.Empty : solicitud.Grano.CosechaAfipCodigo;

            if (solicitud.CargaPesadaDestino.HasValue && solicitud.CargaPesadaDestino.Value)
            {
                if (solicitud.KilogramosEstimados != null)
                {
                    request.datosSolicitarCTGInicial.pesoNeto = (long)solicitud.KilogramosEstimados;
                }
            }
            else if (solicitud.PesoNeto != null)
            {
                request.datosSolicitarCTGInicial.pesoNeto = (long)solicitud.PesoNeto.Value;
            }

            request.datosSolicitarCTGInicial.patente            = solicitud.PatenteCamion;
            request.datosSolicitarCTGInicial.cantHorasSpecified = true;
            request.datosSolicitarCTGInicial.cantHoras          = Convert.ToInt32(solicitud.CantHoras);

            if (solicitud.ClientePagadorDelFlete != null && int.Parse(solicitud.ClientePagadorDelFlete.Id) > 0 && new EmpresaAdmin().GetByClienteId(int.Parse(solicitud.ClientePagadorDelFlete.Id)) != null)
            {
                if (solicitud.ProveedorTransportista != null)
                {
                    request.datosSolicitarCTGInicial.cuitTransportistaSpecified = true;
                    request.datosSolicitarCTGInicial.cuitTransportista          = (long)Convert.ToDouble(solicitud.ProveedorTransportista.NumeroDocumento); //27054888649;
                }
            }
            else
            {
                if (solicitud.ChoferTransportista != null)
                {
                    request.datosSolicitarCTGInicial.cuitTransportistaSpecified = true;
                    request.datosSolicitarCTGInicial.cuitTransportista          = (long)Convert.ToDouble(solicitud.ChoferTransportista.Cuit); //27054888649;
                }
            }

            //Cambio solicitado por Maximiliano y Pedro
            //Si existe intermediario lo manda y no el comercial
            if (solicitud.ClienteIntermediario != null && !String.IsNullOrEmpty(solicitud.ClienteIntermediario.Cuit))
            {
                request.datosSolicitarCTGInicial.remitenteComercialComoCanjeador = (solicitud.RemitenteComercialComoCanjeador.HasValue && solicitud.RemitenteComercialComoCanjeador.Value ? "SI" : "NO");
                request.datosSolicitarCTGInicial.cuitCanjeadorSpecified          = true;
                request.datosSolicitarCTGInicial.cuitCanjeador = (long)Convert.ToDouble(solicitud.ClienteIntermediario.Cuit);// 33504619589;
            }
            else if (solicitud.ClienteRemitenteComercial != null && !String.IsNullOrEmpty(solicitud.ClienteRemitenteComercial.Cuit))
            {
                request.datosSolicitarCTGInicial.remitenteComercialComoCanjeador = (solicitud.RemitenteComercialComoCanjeador.HasValue && solicitud.RemitenteComercialComoCanjeador.Value ? "SI" : "NO");
                request.datosSolicitarCTGInicial.cuitCanjeadorSpecified          = true;
                request.datosSolicitarCTGInicial.cuitCanjeador = (long)Convert.ToDouble(solicitud.ClienteRemitenteComercial.Cuit);// 33504619589;
            }

            //Si la procedencia es las vertientes debe
            if (solicitud.EstablecimientoProcedencia.Descripcion != null && solicitud.EstablecimientoProcedencia.Descripcion.Contains("Las Vertientes") && solicitud.EstablecimientoProcedencia != null && solicitud.EstablecimientoProcedencia.Id == 72)
            {
                request.datosSolicitarCTGInicial.remitenteComercialcomoProductor = "SI";
            }

            request.datosSolicitarCTGInicial.kmARecorrer = (uint)Convert.ToDouble(solicitud.KmRecorridos);
            //PS 27052015
            request.datosSolicitarCTGInicial.cuitCorredorSpecified = false;
            if (solicitud.ClienteCorredor != null && !String.IsNullOrEmpty(solicitud.ClienteCorredor.Cuit))
            {
                request.datosSolicitarCTGInicial.cuitCorredor          = long.Parse(solicitud.ClienteCorredor.Cuit);
                request.datosSolicitarCTGInicial.cuitCorredorSpecified = true;
            }

            return(service.solicitarCTGInicial(request));
        }
        public static DataSet GetDataSet(SolicitudEdit solicitud)
        {
            var result = new DataSet();
            var table  = result.Tables.Add("SolicitudDS");

            table.Columns.Add(new DataColumn("SolicitudId"));
            table.Columns.Add(new DataColumn("NumeroCartaDePorte"));
            table.Columns.Add(new DataColumn("FechaDeCarga"));

            table.Columns.Add(new DataColumn("Grano_Tipo"));
            table.Columns.Add(new DataColumn("Grano_Peso"));
            table.Columns.Add(new DataColumn("Grano_Observaciones"));

            table.Columns.Add(new DataColumn("Procedencia_Direccion"));
            table.Columns.Add(new DataColumn("Procedencia_Localidad"));
            table.Columns.Add(new DataColumn("Procedencia_Provincia"));

            table.Columns.Add(new DataColumn("Transporte_Nombre"));
            table.Columns.Add(new DataColumn("Transporte_Cuit"));
            table.Columns.Add(new DataColumn("Transporte_Domicilio"));
            table.Columns.Add(new DataColumn("Transporte_Camion"));
            table.Columns.Add(new DataColumn("Transporte_KmRecorridos"));
            table.Columns.Add(new DataColumn("Transporte_Acoplado"));

            table.Columns.Add(new DataColumn("Chofer_Nombre"));
            table.Columns.Add(new DataColumn("Chofer_Cuit"));

            table.Columns.Add(new DataColumn("Destinatario_Nombre"));
            table.Columns.Add(new DataColumn("Destinatario_Cuit"));
            table.Columns.Add(new DataColumn("Destinatario_Domicilio"));

            table.Columns.Add(new DataColumn("Destino_Direccion"));
            table.Columns.Add(new DataColumn("Destino_Localidad"));
            table.Columns.Add(new DataColumn("Destino_Provincia"));

            var row = table.NewRow();

            row["SolicitudId"]        = solicitud.Id.ToString();
            row["NumeroCartaDePorte"] = solicitud.NumeroCartaDePorte;
            row["FechaDeCarga"]       = solicitud.FechaDeCarga.HasValue ? solicitud.FechaDeCarga.Value.ToShortDateString() : string.Empty;

            //Ver remitente comercial

            if (solicitud.Grano != null)
            {
                row["Grano_Tipo"]          = string.Format("{0} / {1}", solicitud.Grano.Descripcion, solicitud.Grano.TipoGranoAfipDescripcion);
                row["Grano_Peso"]          = solicitud.PesoNeto;
                row["Grano_Observaciones"] = solicitud.Observaciones;
            }

            if (solicitud.EstablecimientoProcedencia != null)
            {
                row["Procedencia_Direccion"] = solicitud.EstablecimientoProcedencia.Direccion;
                row["Procedencia_Localidad"] = solicitud.EstablecimientoProcedencia.LocalidadDescripcion;
                row["Procedencia_Provincia"] = solicitud.EstablecimientoProcedencia.ProvinciaDescripcion;
            }

            if (solicitud.ClientePagadorDelFlete != null)
            {
                row["Transporte_Nombre"]    = solicitud.ClientePagadorDelFlete.RazonSocial;
                row["Transporte_Cuit"]      = solicitud.ClientePagadorDelFlete.Cuit;
                row["Transporte_Domicilio"] = string.Format("Calle: {0}. Número: {1}. Piso: {2}. C.P.: {3}.",
                                                            solicitud.ClientePagadorDelFlete.Calle, solicitud.ClientePagadorDelFlete.Numero,
                                                            solicitud.ClientePagadorDelFlete.Piso, solicitud.ClientePagadorDelFlete.Cp);
            }

            row["Transporte_Camion"]       = solicitud.PatenteCamion;
            row["Transporte_Acoplado"]     = solicitud.PatenteAcoplado;
            row["Transporte_KmRecorridos"] = solicitud.KmRecorridos;

            if (solicitud.Chofer != null)
            {
                row["Chofer_Nombre"] = solicitud.Chofer.Nombre;
                row["Chofer_Cuit"]   = solicitud.Chofer.Cuit;
            }

            if (solicitud.ClienteDestinatario != null)
            {
                row["Destinatario_Nombre"]    = solicitud.ClienteDestinatario.RazonSocial;
                row["Destinatario_Cuit"]      = solicitud.ClienteDestinatario.Cuit;
                row["Destinatario_Domicilio"] = string.Format("Calle: {0}. Número: {1}. Piso: {2}. C.P.: {3}.",
                                                              solicitud.ClienteDestinatario.Calle, solicitud.ClienteDestinatario.Numero,
                                                              solicitud.ClienteDestinatario.Piso, solicitud.ClienteDestinatario.Cp);
            }

            if (solicitud.EstablecimientoProcedencia != null)
            {
                row["Destino_Direccion"] = solicitud.EstablecimientoDestino.Direccion;
                row["Destino_Localidad"] = solicitud.EstablecimientoDestino.LocalidadDescripcion;
                row["Destino_Provincia"] = solicitud.EstablecimientoDestino.ProvinciaDescripcion;
            }

            table.Rows.Add(row);

            return(result);
        }